Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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 如何返回';父亲ID';在这个查询中?_Mysql_Sqlfiddle - Fatal编程技术网

Mysql 如何返回';父亲ID';在这个查询中?

Mysql 如何返回';父亲ID';在这个查询中?,mysql,sqlfiddle,Mysql,Sqlfiddle,我试图返回我的表(MySQL)的父ID,以下是返回: ID NOME PARENT_ID 1 Project (null) 2 Sub 1 3 Sub-Sub 2 4 Sub-Sub-Sub 3 我需要这个: ID NOME PARENT_ID FATHER_ID 1 Project (null) (null) 2 Sub 1 1 3 Su

我试图返回我的表(MySQL)的父ID,以下是返回:

ID  NOME         PARENT_ID
1   Project      (null)
2   Sub          1
3   Sub-Sub      2
4   Sub-Sub-Sub  3
我需要这个:

ID  NOME         PARENT_ID FATHER_ID
1   Project      (null)    (null)
2   Sub          1         1 
3   Sub-Sub      2         1
4   Sub-Sub-Sub  3         1

下面是我必须使用的函数():


这基本上是一个复制品。TLDR:你不容易做到。
CREATE FUNCTION getRoot(idSearch INT)
RETURNS INT DETERMINISTIC
BEGIN
  SET @idParent = idSearch;
  WHILE (@idParent != 0) DO
    SET @idFound = @idParent;
    SET @idParent = (SELECT id_parent FROM arvore WHERE id = @idParent);
  END WHILE;
  RETURN @idFound;
END