【发布时间】:2021-06-28 15:56:07
【问题描述】:
我真的不确定如何准确表达我想要做的事情,因此我无法搜索。我有一张pages 的表格,如果parent_id 是NULL,则每个表格都有id、title、order 和parent_id,这被认为是顶级页面。我几乎可以使用ORDER BY by parent_id 和order 使用以下查询正确排序:
select `id`, `title`, `order`, `parent_id`
from pages
order by `order` AND COALESCE(`parent_id`, `order`), `parent_id` is not null, `order`
查询结果如下:
| id | title | order | parent_id |
|---|---|---|---|
| 107fa138 | video | 0 | NULL |
| 8eeda86c | mn | 2 | NULL |
| cac640ad | xxe title | 3 | NULL |
| 1ce4d070 | sdfsdfsdf | 4 | NULL |
| b45dc24d | another | 1 | 8eeda86c |
| d3490141 | hello | 9 | 8eeda86c |
这几乎是我想要的。理想情况下,我会将带有 parent_ids 的行直接放在带有 id 的行下方,因此理想情况下排序顺序如下所示:
| id | title | order | parent_id |
|---|---|---|---|
| 107fa138 | video | 0 | NULL |
| 8eeda86c | mn | 2 | NULL |
| b45dc24d | another | 1 | 8eeda86c |
| d3490141 | hello | 9 | 8eeda86c |
| cac640ad | xxe title | 3 | NULL |
| 1ce4d070 | sdfsdfsdf | 4 | NULL |
我什至不知道我会怎么做。如果有人能指出我正确的方向,那就太棒了。
【问题讨论】: