我有下表:
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/