mysql递归查询节点下所有子节点

数据表organ 主键id 名称name 父级id parent_uuid,类型object_type
查询父级id下所有数据
用了网上的方法 并不能得到,应该怎么写?

select id from (
              select t1.id,
              if(find_in_set(parent_uuid, @pids) > 0, @pids := concat(@pids, ',', id), 0) as ischild
              from (
                   select id,parent_uuid from organ t where t.object_type = '设备'
                  ) t1,
                  (select @pids := '11111' id) t2                            
             ) t3
where ischild != 0

SELECT au.id
FROM (SELECT * FROM organ  WHERE parent_uuid IS NOT NULL) au,
     (SELECT @pid := '11111') pd 
WHERE FIND_IN_SET(parent_uuid, @pid) > 0 
  AND @pid := concat(@pid, ',', id)

可以参考下这个 http://t.csdn.cn/dPA4V

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    根据参考资料中的方法,你可以使用以下的查询语句来查询特定父级id下的所有子节点:

    SELECT t1.id, t1.name, t1.parent_uuid, t1.object_type
    FROM organ AS t1
    JOIN organ AS t2 ON t2.parent_uuid = t1.id
    WHERE t1.parent_uuid = '特定父级id';
    

    这个查询语句使用了自连接来获取特定父级id下的所有子节点。首先,我们将表格自连接两次,然后使用JOIN和WHERE子句来筛选出特定父级id的记录。

    注意替换查询语句中的"organ"为你的表名,将"特定父级id"替换为你要查询的具体父级id。

    希望这个解决方案能够帮助你解决问题,如果还有其他疑问,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^