在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
節點的所有子節點。你可以根據需要修改查詢語句中的條件來查詢其他節點的子節點。