php - MySQL mylty 对表进行排序

标签 php mysql

我有一个 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/

相关文章:

mysql - MySQL bool 搜索中关键字的排序规则是什么?

php - 在单独的关键字表中搜索最匹配的 id

mysql - 如何使用node js和MySql从数据库以数组格式获取数据

php - 准备好的语句内连接无法通过引用传递参数

php - 如何使用 Laravel Eloquent 获取特定成绩数据?

PHP:如何创建链接到我的搜索脚本的搜索表单

javascript - 带有 javascript 验证的 php 表单

php - 两个日期之间的SQL存储逻辑

php - 数据表显示来自 áéíóúÑ 中带有 � 的查询行

php - Paypal 中的标准工作流程与 PHP codeigniter 集成