我有一个大型 mysql 表,其父子关系存储在嵌套集模型中(左值和右值)。
它可以轻松找到给定项目的所有子项。
现在,我如何找到某个项目的深度。
行示例:
Parent_ID、Taxon_ID、Taxon_Name、lft、rgt
对于 somerow(taxon_id) 我想知道它距离根节点有多远。
现在,这里可能需要注意的是,我的数据结构方式是每个终端节点(没有自己的子节点的节点)lft = rgt。我知道网上发布的许多示例都有 rgt = lft +1,但为了方便起见,我们决定不这样做。
摘要: 嵌套集模型,需要找到给定节点的深度(到达根的节点数)。
最佳答案
我明白了。
本质上,您必须查询包含您要查找的节点的所有节点。例如,我正在查看一个具有 lft=rgt=7330 的节点,我想要它的深度。我只需要
Select count(*)
from table
where lft<7330
AND rgt>7330
在使用结果之前,您可能需要将其加 1,因为它实际上告诉您之前的代数,而不是实际级别。但它有效而且速度很快!
关于mysql - 嵌套集的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269806/