2017-05-26 26 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