mysql怎样查询所有子节点
在MySQL中,如果你有一个树形结构的表,可使用递归查询来获得所有子节点。以下是一种经常使用的方法:
假定你有一个表tree_table
,包括了以下数据:
| id | name | parent_id |
|------|----------|-----------|
| 1 | Root | NULL |
| 2 | Node1 | 1 |
| 3 | Node2 | 1 |
| 4 | Node3 | 2 |
| 5 | Node4 | 2 |
| 6 | Node5 | 3 |
你可使用以下的SQL语句来查询Node1
节点的所有子节点:
WITH RECURSIVE cte AS (
SELECT id, name, parent_id
FROM tree_table
WHERE name = 'Node1'
UNION ALL
SELECT tt.id, tt.name, tt.parent_id
FROM tree_table tt
JOIN cte ON tt.parent_id = cte.id
)
SELECT * FROM cte;
这个查询语句使用了递归的CTE(Common Table Expression)来获得指定节点的所有子节点。在这个例子中,我们查询了Node1
节点的所有子节点。你可以根据需要修改查询语句中的条件来查询其他节点的子节点。
tiktok粉丝购买:https://www.smmfensi.com/
TOP