gpt4 book ai didi

mysql 仅获取嵌套集树的特殊数据

转载 作者:行者123 更新时间:2023-11-29 20:48:13 25 4
gpt4 key购买 nike

希望各位mysql专家能够帮助我。

如果树上有间隙,那么我不想要更深的 child 。

示例:

root (depth 0)
sub-cat 1 (depth 1)
subsub-cat 1 (depth 2)
subsubsubsub-cat 1 (depth 4)

在这种情况下,深度为 3 的节点被禁用,我不需要节点 subsubsubsub-cat 1 及更深

结构:

id | parent_id | lft | rgt | depth | title

默认查询:

select *
from categories
where lft >= '1' and lft < '10000'
order by lft asc

谢谢!

最佳答案

间隙(如“删除的中间节点”、缺少 parent_id深度 值的跳跃)很难在嵌套集中检测甚至定义(嵌套集不需要这些列),但如果您只想隐藏一个节点及其所有子节点,可以通过向树添加标记列来轻松完成,例如隐藏,并且仅使用那些没有隐藏前驱(或本身隐藏)的节点:

select *
from categories as node
where not exists
(select 1 from categories as preds
where node.lft >= preds.lft
and node.rgt <= preds.rgt
and preds.hidden = 1)
order by node.lft;

关于mysql 仅获取嵌套集树的特殊数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38281580/

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