簡體   English   中英

我如何從同一個表的父級子級的mysql順序中獲取記錄

[英]How do I fetch record from mysql order by parent child from same table

我有一個Mysql表,包含的記錄包括2種類型的記錄

1.父母記錄和

2.兒童記錄

ID       |  ParentID    |    Feature
1        |  0           |   abc    
2        |  0           |  baby 
3        |  2           |  cart
4        |  1           |  Daddy
5        |  2           |  george
6        |  1           |  Frank

有一列ParentID區分了父代和子代。 父級具有該列的NULL而該列中子級具有該列的ID。Id列是自動遞增的。

所以我的問題是我需要最新記錄,該記錄應按以下順序顯示在該父級的那個子項出現之后的頂級父級記錄中。

所以記錄集如下

FeatureID | ParentID 
1            0       
4            1      
6            1      
2            0     
3            2      
5            2    

提前致謝。

...
order by case when ParentID = 0 then ID else ParentID end, ParentID, ID
  1. 由計算列(即ParentID或ID)排序
  2. 按ParentID排序
  3. 按編號購買

是否case when ... then ... else ... end使用ANSI / ISO標准case when ... then ... else ... end還是更短的特定於MySQL的if(...,...,...)取決於您的喜好。 同樣,無論您使用ParentID=0還是使用相反的邏輯ParentID!=0 (在這種情況下,后者可以縮短為ParentID

如果我正確理解,這應該可以工作:

...
ORDER BY IF(ParentID,ParentID,ID) ASC, ID ASC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM