为了账号安全,请及时绑定邮箱和手机立即绑定

使用 php 对 mysql 记录进行高级/技术排序

使用 php 对 mysql 记录进行高级/技术排序

PHP
子衿沉夜 2021-11-05 16:25:13
我在尝试确定如何对 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


查看完整回答
反对 回复 2021-11-05
?
元芳怎么了

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 数据?对于该循环的结构。


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信