mysql递归查询所有子节点
时间: 2023-07-06 21:43:34 浏览: 294
mysql 递归查找菜单节点的所有子节点的方法
可以使用MySQL中的WITH RECURSIVE语句来递归查询所有子节点。假设我们有一个表格名为`category`,包含以下字段:
```
id INT PRIMARY KEY,
name VARCHAR(50),
parent_id INT
```
其中`parent_id`表示父节点的`id`,根节点的`parent_id`为`NULL`。现在我们想要查询某个节点的所有子节点,可以使用以下SQL语句:
```
WITH RECURSIVE cte AS (
SELECT id, name, parent_id
FROM category
WHERE id = [节点id]
UNION ALL
SELECT c.id, c.name, c.parent_id
FROM category c
JOIN cte ON c.parent_id = cte.id
)
SELECT *
FROM cte;
```
这个语句中,我们首先选取了指定节点的记录作为起始节点,然后使用UNION ALL和JOIN关键字递归查询该节点的所有子节点。最后,我们从递归表达式中选择所有记录并返回。
阅读全文