mysql - 棘手的 MySQL ORDER BY 问题

标签 mysql group-by sql-order-by

我有下表:

id  title               parent_forum    depth
1   'Forum1'             0               0   
2   'Forum2'             0               0   
3   'Forum3'             0               0   
4   'Forum1 subforum'    1               0   
5   'Forum2 subForum'    2               0   
6   'Forum3 subForum'    3               0

我想做的是对行进行排序,以便所有子论坛都按其父论坛分组。因此,作为示例,我希望按如下方式对输出进行排序:

id  title               parent_forum    depth
1   'Forum1'             0               0
4   'Forum1 subforum'    1               0

2   'Forum2'             0               0  
5   'Forum2 subForum'    2               0
7   'Forum2 subForum2'   2               0

3   'Forum3'             0               0   
6   'Forum3 subForum'    3               0

(为了更好理解而加空格) 一定有办法只用 ORDER BY 和 GROUP BY 吗?如果没有,任何人都可以提供一个好的查询来帮助我吗?

编辑:还是我的数据库结构很糟糕(我没有展示全部,但你能看到的东西是垃圾吗?)

非常感谢,

詹姆斯

最佳答案

我认为这足以解决问题:

ORDER BY IF(parent_forum = 0,id,parent_forum), parent_forum

关于mysql - 棘手的 MySQL ORDER BY 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4138787/

相关文章:

python - 如何使用 Pandas 计算另一列中每个值在一列中的出现次数?

mysql - 将行值显示为要在 GridView 中显示的列

PHP MYSQL QUERY ORDER BY desc问题

mysql - 选择查询 char numeric id 按 desc 排序

mysql - 我可以查询按两列排序吗?

mysql - 如何在带有 SUM 的多重连接查询中包含 DISTINCT

sql - MySQL:联合、计数和分组依据

mysql - mySql 中的小时明智数据

mysql - 根据条件行从另一个表中查找结果

php - 从行 MySql 数据库中删除空格