棘手的MySQL ORDER BY问题

时间:2010-11-09 21:23:33

标签: 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才有办法?如果没有,任何人都可以提供一个好的查询来帮助我吗?

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

非常感谢,

詹姆斯

1 个答案:

答案 0 :(得分:2)

我认为这很有用:

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