[英]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
是否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.