我在尝试确定如何对 mysql 数据库中的某些数据进行排序时遇到问题。我有一个内容项目表,记录包含一个 id(自动递增)、一个 parent_id(因此一个页面可以是另一个页面的子页面)、url 和标题。我想以嵌套列表样式对数据进行排序,其中主要的非子页面是第一级,并且那些以该页面 id 作为父 id 的页面列在其下方。这里有没有特殊的命令可以使用,还是需要按php排序?所以,作为一个例子:id | parent_id | title---------------------------1 0 Page 13 0 Page 36 1 Page 67 3 Page 7该列表应如下所示:Page 1 Page 6 Any others with parent id of 1Page 3 Page 7 Any others with parent id of 3
2 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
对于没有任何 JOIN 的具有 2 个嵌套级别的表:
SELECT * FROM table ORDER BY IF(parent_id = 0, id, parent_id), id
元芳怎么了
TA贡献1798条经验 获得超7个赞
将表与自身连接,将父 ID 与 ID 连接。
SELECT parent.title AS parent_page, child.title AS child_page
FROM yourTable AS parent
JOIN yourTable AS child ON child.parent_id = parent.id
ORDER BY parent.id
在您的 PHP 循环中,每当它更改时打印父页面标题。请参阅如何在 PHP 中列出与 while 循环相同的 id 数据?对于该循环的结构。
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消