gpt4 book ai didi

mysql - 递归自查询

转载 作者:可可西里 更新时间:2023-11-01 06:29:59 26 4
gpt4 key购买 nike

我有下表:

myTable:
+----+----------+
| id | parentID |
+----+----------+
| 1 | null |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 4 |
-----------------

我想追溯所有行,直到不再有 parentID 为止。所以 ".. WHERE id=5" 会给我:

5, 4, 2, 1

最佳答案

您正在使用 adjacency list model 组织分层数据.这种递归操作困难的事实实际上是该模型的一个主要缺点。

一些 DBMS,例如 SQL Server 2005、Postgres 8.4 和 Oracle 11g,支持使用 common table expressions 的递归查询。使用 WITH 关键字。

对于 MySQL,您可能有兴趣查看以下描述替代模型(nested set model)的文章,它使递归操作更容易(可能):

此外,我还建议查看 Bill Karwin's presentation在上面的评论中指出。所描述的闭包表模型是嵌套集的一种非常有效的替代方法。

关于mysql - 递归自查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276136/

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