gpt4 book ai didi

mysql - 站点层次结构的邻接列表模型,如何按此特定顺序检索所有页面?

转载 作者:行者123 更新时间:2023-11-30 23:10:39 25 4
gpt4 key购买 nike

我不得不说我不是 SQL 高手,也许这个查询真的很简单,但我写不出来。基本上所有页面都是使用邻接表模型排列的(我也在跟踪深层):

+----+---------------+-------------------+-----------+
| id | title | level | position | parent_id |
+----+---------------+-------+-----------+-----------+
| 1 | Home | 0 | 0 | null |
+----+---------------+-------+-----------+-----------+
| 2 | Resources | 0 | 1 | null |
+----+---------------+-------+-----------+-----------+
| 3 | About | 0 | 2 | null |
+----+---------------+-------+-----------+-----------+
| 4 | Documents | 1 | 0 | 2 |
+----+---------------+-------+-----------+-----------+
| 5 | Tutorials | 1 | 1 | 2 |
+----+---------------+-------+-----------+-----------+

请注意,位置在同一父项中是唯一的。

我想要实现的是按父类和位置排序,但是父类应该列在它的子类之前。这是显而易见的,但不起作用:

SELECT * FROM PAGE p
ORDER BY parent_id, position

结果是第一个表。我需要的是:

+----+---------------+-------------------+-----------+
| id | title | level | position | parent_id |
+----+---------------+-------+-----------+-----------+
| 1 | Home | 0 | 0 | null |
+----+---------------+-------+-----------+-----------+
| 2 | Resources | 0 | 1 | null | // Parent of 4, 5
+----+---------------+-------+-----------+-----------+
| 4 | Documents | 1 | 0 | 2 | // Child of Resource
+----+---------------+-------+-----------+-----------+
| 5 | Tutorials | 1 | 1 | 2 | // Child of Resource
+----+---------------+-------+-----------+-----------+
| 3 | About | 0 | 2 | null |
+----+---------------+-------+-----------+-----------+

这在不支持递归的 MySQL 中可行吗?

最佳答案

当您可以限制查询时,您可以使用自连接。或者尝试嵌套集或 celko 树。

关于mysql - 站点层次结构的邻接列表模型,如何按此特定顺序检索所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com