-1

我有这样的结果

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

我想以一种显示记录的方式对记录进行排序,方法是让父项和所有子项都在其下。所以结果看起来像这样

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

如何使用 MySQL 按此顺序对记录进行排序?

谢谢

4

2 回答 2

1

MySQL 不支持递归查询。但是,如果父母不能有父母(例如在您的示例数据中),您可以使用以下内容:

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

在此处查看小提琴。

于 2013-06-27T17:51:37.693 回答
0

或许...

SELECT id,COALESCE(parent,id) p FROM my_table ORDER BY p,id;
于 2013-06-27T17:54:38.937 回答