我需要获取父节点的所有子节点?
我的表格如下
id
parent_id
并说数据是
id parent_id
1 -1
2 1
3 -1
4 2
5 4
我想要一个查询,它将返回给定 id 的所有 child
例如,如果我传递 1,它将返回 2、4、5
最佳答案
SET @input = 1;
SELECT GROUP_CONCAT(lvl SEPARATOR ',') children FROM (
SELECT @q := (SELECT GROUP_CONCAT(id SEPARATOR ',') FROM tbl
WHERE parent_id IN (@q)) AS lvl FROM tbl
JOIN
(SELECT @q := @input) tbl
WHERE parent_id IN (@q)) t;
这里是 SQL Fiddle用于查询。
关于MySQL 树层次结构查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33016727/