我有一个Mysql表包含记录包含2种类型的记录
1.parent record和
2.Child record
ID | ParentID | Feature
1 | 0 | abc
2 | 0 | baby
3 | 2 | cart
4 | 1 | Daddy
5 | 2 | george
6 | 1 | Frank
有一列ParentID
区分父母与子女。 Parent具有该列NULL
的值,而在该列中,child具有parent的父ID.Id列是自动增量。
所以我的问题是我需要按照以下顺序记录最新记录 在该父母的孩子出现之后,应该在最佳父记录上。
所以记录集如下
FeatureID | ParentID
1 0
4 1
6 1
2 0
3 2
5 2
先谢谢。
答案 0 :(得分:1)
...
order by case when ParentID = 0 then ID else ParentID end, ParentID, ID
是否使用ANSI / ISO标准case when ... then ... else ... end
或更短的MySQL特定if(...,...,...)
取决于您的喜好。另外,您是使用ParentID=0
还是反逻辑ParentID!=0
(在这种情况下,后者可以缩短为ParentID
)
答案 1 :(得分:0)
如果我理解正确,这应该有效:
...
ORDER BY IF(ParentID,ParentID,ID) ASC, ID ASC