Mysql 按问题排序

Mysql 按问题排序,mysql,group-by,sql-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 su

我有下表:

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 IF(parent_forum = 0,id,parent_forum), parent_forum

忘了包括你寻找子论坛的顺序吗?子论坛的id值是否可以小于其父论坛?可能,但不太可能-论坛和子论坛将通过表单添加,因此管理员可以创建所有顶级论坛,然后再创建子论坛,所以是的。谢谢你的意见,但是Eric Petroleje用一种非常简单的方式解决了这个问题(如下):)这很有魅力-非常感谢!这么简单的回答。我本来打算在一个循环中使用多个查询,但您刚刚节省了我的开销。这不需要花太多时间,但我需要事情尽可能快。@JamWaffles-如果你可以有子论坛(超过两个级别),这可能不起作用-我无法想象ORDER BY在我脑海中的表现,因此,如果您的系统中真的可以这样做,您需要对其进行测试。此查询仅用于顶级登录页。第二级以下的论坛(如,我的OP中未涉及的论坛)将在单独的页面上,我将使用稍微不同的查询,并考虑所选子论坛的深度。我可能很快会带着另一条线索回来寻求更多帮助!:P