我有一个包含父级和子级记录的分层数据的表。我想以正确的顺序选择它们,无论使用MySql记录在表中的数据的顺序如何。如何使用单个查询列出以下示例中的以下数据?
Ex:表
ID | Title | Parent
1 | A | 0
2 | B | 1
3 | C | 1
4 | D | 0
5 | E | 4
6 | F | 4
7 | G | 0
8 | H | 7
9 | I | 1
10 | J | 4
向..
ID | Title | Parent
1 | A | 0
2 | B | 1
3 | C | 1
9 | I | 1
4 | D | 0
5 | E | 4
6 | F | 4
10 | J | 4
7 | G | 0
8 | H | 7
答案 0 :(得分:1)
您可以尝试在CASE EXPRESSION
子句中使用ORDER BY
:
SELECT t.*
FROM YourTable t
ORDER BY CASE WHEN t.Parent = 0 THEN t.ID ELSE t.Parent END,
t.ID
注意:这适用于您提供的数据,它不适用于超过1级的层次结构!
答案 1 :(得分:-1)
这就是你要找的东西吗?
SELECT * FROM myTable
ORDER BY IF(Parent = 0 ,id,Parent);