admin 管理员组

文章数量: 1184232


2024年4月14日发(作者:企业网站管理源码)

一句SQL实现MYSQL的递归查询

在MySQL中,可以使用WITHRECURSIVE关键字来实现递归查询。以下

是一些示例代码:

1.找出一个表中所有的子孙节点

```

WITH RECURSIVE cte AS

SELECT id, name, parent_id FROM your_table WHERE id = 1

UNIONALL

SELECT , , _id FROM your_table t

JOIN cte ON _id =

SELECT * FROM cte;

```

2.计算一个表中所有节点的深度

```

WITH RECURSIVE cte AS

SELECT id, parent_id, 1 AS depth FROM your_table WHERE

parent_id IS NULL

UNIONALL

SELECT , _id, + 1 FROM your_table t

JOIN cte ON _id =

SELECT id, MAX(depth) AS max_depth FROM cte GROUP BY id;

```

上述代码中的your_table是要进行递归查询的表名,id是节点的唯

一标识,name是节点的名称,

际情况进行调整。

parent_id是父节点的唯一标识。请根据实


本文标签: 节点 递归 查询