2017-05-26 41 views
0

取记录我有一个MySQL表包含记录包括2种类型的记录如何从mysql命令由父子来自同一个表

1.parent记录和

2.Child记录

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

有一列ParentID区分父母和孩子。父项的值为该列NULL,而在该列中,子项的id为parent.Id列为自动增量。

所以我的问题是我需要按照以下顺序的最新记录 上面的父记录应该在那个父母那个孩子之后出现。

所以记录将作为后续

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

在此先感谢。

回答

0

如果我正确理解这应该工作:通过计算列也就是PARENTID或ID

  • 为了通过PARENTID由ID
  • 奥德

    ... 
    ORDER BY IF(ParentID,ParentID,ID) ASC, ID ASC 
    
  • +0

    使用ORDER BY IF(ParentID,ParentID,ID),ParentID,ID' –

    0
    ... 
    order by case when ParentID = 0 then ID else ParentID end, ParentID, ID 
    
    1. 顺序

    是否使用ANSI/ISO标准case when ... then ... else ... end或更短的MySQL特定if(...,...,...)取决于你的喜好。还可以使用​​或ParentID!=0的反逻辑(后者可在此情况下缩短为ParentID