mysql递归查询上级
时间: 2023-06-23 22:45:42 浏览: 107
MySQL递归查询
如果你的MySQL数据表中有一个字段用于存储上级的ID,可以使用递归查询来查找一个节点的所有上级。
以下是一个示例查询:
```
WITH RECURSIVE cte AS (
SELECT id, parent_id, name
FROM your_table
WHERE id = :node_id
UNION ALL
SELECT t.id, t.parent_id, t.name
FROM your_table t
JOIN cte ON cte.parent_id = t.id
)
SELECT * FROM cte;
```
在这个查询中,我们使用了MySQL的`WITH RECURSIVE`语法来定义一个递归查询(CTE)。我们首先选择指定的节点,然后递归地选择所有父节点,直到没有更多的父节点。
你需要将`:node_id`替换为你要查找上级的节点的ID。
这个查询将返回一个包含所有上级节点的结果集,包括节点本身。结果集中的每一行都包含一个节点的ID、父节点的ID和名称。
阅读全文