我有一个 MySQL 表用户:
# | name | parent|
________________________
1 | USER 1 |
2 | USER 2 |
3 | user 12 | 1
4 | user 22 | 2
5 | user 11 | 1
6 | USER 3 |
7 | user 21 | 2
8 | user 31 | 6
这里的父记录是同一个表的主键。我需要的是按父级和名称对表进行排序。
这是我需要得到的结果:
# | name | parent|
________________________
1 | USER 1 |
5 | user 11 | 1
3 | user 12 | 1
2 | USER 2 |
7 | user 21 | 2
4 | user 22 | 2
6 | USER 3 |
8 | user 31 | 6
最佳答案
如果您只有一级 parent ,您可以这样做:
select u.*
from users u
order by coalesce(parent, #), #;
(这假设父级的 id 小于子级的 id,就像问题中的示例数据的情况一样。)
如果你有多个级别的 parent (祖 parent 等),那么单个 MySQL 查询就会出现问题。 MySQL 不直接支持分层或递归查询。
关于php - MySQL mylty 对表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26140160/