我的表中有这些记录:
id | title | sub
-----+-------------+------
1 | Parent 1 | 0
2 | Parent 2 | 0
3 | Sub 1-1 | 1
4 | Parent 3 | 0
5 | Sub 1-2 | 1
6 | Sub 2-1 | 2
7 | Parent 4 | 0
现在我想用这样的一个查询从我的表中选择这些记录:
id | title | sub
-----+-------------+------
1 | Parent 1 | 0
3 | Sub 1-1 | 1
5 | Sub 1-2 | 1
2 | Parent 2 | 0
6 | Sub 2-1 | 2
4 | Parent 3 | 0
7 | Parent 4 | 0
我想按父母和孩子对我的记录进行排序。
如何在 mySQL 中执行此操作?
更新:
我使用这个查询:
SELECT a.*,
CASE WHEN SUB = 0 THEN ID ELSE SUB END expression
FROM category a
ORDER BY CASE WHEN SUB = 0 THEN ID ELSE SUB END, ID
我的数据是:
id | title | sub
----+---------------+-------
1 | Parent 1 | 0
2 | Parent 2 | 0
3 | Sub 1-1 | 7
4 | Parent 3 | 0
5 | Sub 1-2 | 4
6 | Sub 2-1 | 2
7 | Parent 4 | 0
结果是:
id | title | sub | expression
----+-----------+-------+-----------
1 | Parent 1 | 0 | 1
2 | Parent 2 | 0 | 2
6 | Sub 2-1 | 2 | 2
4 | Parent 3 | 0 | 4
5 | Sub 1-2 | 4 | 4
3 | Sub 1-1 | 7 | 7
7 | Parent 4 | 0 | 7