如何从父表中从同一个表中获取mysql顺序的记录

时间:2017-05-26 13:59:08

标签: mysql sql sorting parent-child

我有一个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    

先谢谢。

2 个答案:

答案 0 :(得分:1)

...
order by case when ParentID = 0 then ID else ParentID end, ParentID, ID
  1. 按计算列排序,即ParentID或ID
  2. 按ParentID订购
  3. oder by ID
  4. 是否使用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
相关问题