2013-06-27 34 views
-1

我設置的結果是這樣如何排序它的下面

ID >> Parent 
1 >> 0 
2 >> 0 
3 >> 0 
4 >> 1 
5 >> 1 
6 >> 2 
7 >> 1 
8 >> 0 
9 >> 3 
10 >> 0 

我想記錄的方式,我通過具有顯示記錄進行排序首先顯示父ID,那麼所有的孩子ID結果父母和它下面的所有孩子。所以結果看起來是這樣

1 >> 0 
4 >> 1 
5 >> 1 
7 >> 1 
2 >> 0 
6 >> 2 
3 >> 0 
9 >> 3 
8 >> 0 
10 >> 0 

如何在使用MySQL這個順序對記錄進行排序?

感謝

+1

[MySQL的SELECT樹父的ID]的可能的複製(http://stackoverflow.com/questions/5688376/mysql-select-tree-parent-ids)。 – Aiias

+0

我已經嘗試按照排序標識,父母沒有工作。也嘗試了ORDER BY COALESCE(父母,身份證),父母,身份證。這沒有工作 – Mike

回答

1

MySQL不支持遞歸查詢。但是,如果父母不能有父(如在您的樣本數據),你可以使用這樣的事情:

SELECT * 
FROM  mytable 
ORDER BY CASE WHEN Parent=0 THEN ID ELSE Parent END, ID 

請參閱小提琴here

+0

這確實工作。 MySQL不支持遞歸查詢的任何已知原因?非常感謝 – Mike

0

或者,也許......

SELECT id,COALESCE(parent,id) p FROM my_table ORDER BY p,id; 
相關問題