gpt4 book ai didi

php - 当有多棵树时,使用修改后的前序树遍历进行选择

转载 作者:行者123 更新时间:2023-11-30 22:52:28 24 4
gpt4 key购买 nike

我已经实现了修改后的预序树遍历 as explained here出于优化原因。我的 table 是这样的:

+----+-----------+------+-------+
| id | parent_id | left | right |
+----+-----------+------+-------+
| 1 | NULL | 1 | 4 |
| 2 | 1 | 2 | 3 |
| 3 | NULL | 1 | 4 |
| 4 | 3 | 2 | 3 |
+----+-----------+------+-------+

即表中存在任意数量的树。如果节点的父 ID 为空,则自动意味着该节点是其树的基础。

文章指出,可以非常简单地选择一个节点的所有后代:

SELECT *
FROM table
WHERE
left > ?
AND
right < ?

现在我的问题是选择显然要包括其他树的节点。毕竟,我什至没有指定一棵树开始。是否可以使用此模型仅从一棵指定的树中选择节点?

最佳答案

不要以 left = 1 开始新树。对 left 值使用 MAX(right) + 1。这不会影响其他节点操作,并且树将被左右范围分隔。

关于php - 当有多棵树时,使用修改后的前序树遍历进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748285/

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