admin 管理员组

文章数量: 1087135


2024年4月14日发(作者:win10开启远程桌面连接)

mysql查出最底层叶子节点的方法

MySQL 查出最底层叶子节点的方法可以使用递归查询或者子查询

的方式实现。

递归查询的实现方式是基于 WITH RECURSIVE 语句,这个语句可

以递归查询 MySQL 中的数据,直到查询到最底层的叶子节点。具体实

现可以参考以下示例代码:

WITH RECURSIVE cte (id, parent_id, level) AS (

SELECT id, parent_id, 0 FROM my_table WHERE parent_id

IS NULL

UNION ALL

SELECT , _id, + 1

FROM my_table mt

JOIN cte ON _id =

)

SELECT *

FROM cte

WHERE NOT EXISTS (

SELECT 1 FROM my_table WHERE parent_id =

);

上述代码中,首先查询 parent_id 为空的记录作为递归的起点,

然后通过 UNION ALL 语句连接子查询,将每一层的记录递归出来,并

计算层级 level。最后通过 NOT EXISTS 子查询排除有下级的记录,

筛选出最底层的叶子节点。

另外,也可以使用子查询方式实现,具体实现代码如下:

SELECT * FROM my_table

WHERE NOT EXISTS (

SELECT 1 FROM my_table t1 WHERE _id =

my_

);

上述代码中,使用子查询筛选出没有下级节点的记录,即为最底

层叶子节点。


本文标签: 查询 递归 节点 实现 最底层