我有这样的结果
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按顺序对记录进行排序?
由于
答案 0 :(得分:1)
MySQL不支持递归查询。但是如果父母不能拥有父母(比如你的样本数据),你可以使用这样的东西:
SELECT *
FROM mytable
ORDER BY CASE WHEN Parent=0 THEN ID ELSE Parent END, ID
请参阅小提琴here。
答案 1 :(得分:0)
或者也许......
SELECT id,COALESCE(parent,id) p FROM my_table ORDER BY p,id;