Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL树层次结构查询?_Mysql_Sql_Stored Procedures_Recursion - Fatal编程技术网

MySQL树层次结构查询?

MySQL树层次结构查询?,mysql,sql,stored-procedures,recursion,Mysql,Sql,Stored Procedures,Recursion,我需要获取父节点的所有子节点 我的桌子如下所示 id parent_id 并且说数据是 id parent_id 1 -1 2 1 3 -1 4 2 5 4 我想要一个查询,它将返回给定id的所有子项 例如,如果我通过1,它将返回2,4,5 SET @input = 1; SELECT GROUP_CONCAT(lvl SEPARATOR ',') children FROM ( SELECT @q := (SELECT GRO

我需要获取父节点的所有子节点

我的桌子如下所示

id

parent_id
并且说数据是

id   parent_id

1     -1

2      1

3     -1

4      2

5      4
我想要一个查询,它将返回给定id的所有子项

例如,如果我通过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;

这是查询。

是多个级别还是只有一个级别?父->chield还是伟大的父->父->子?你不能用一个查询来完成它(不是在mysql中)。你需要一个函数。请看这里:好吧,你可以,只是不能用这个数据结构。