NAVICAT中截图
表结构如下图
随便创建一个类型的表格查询数据
查询父节点
代码如下
BEGIN
DECLARE i varchar(100) default '';
DECLARE j varchar(1000) default rootId;
WHILE rootId is not null do
SET i =(SELECT parent_id FROM paternal_tree WHERE id = rootId);
IF i is not null THEN
SET j = concat(j, ',', i);
SET rootId = i;
ELSE
SET rootId = i;
END IF;
END WHILE;
return j;
END
截图如下所示
注意下方需要加入的参数,和返回类型,类型选对。最后调用该函数就行
查询子节点类似,这里贴上代码就行。
BEGIN
DECLARE str varchar(2000);
DECLARE cid varchar(100);
SET str = '$';
SET cid = rootId;
WHILE cid is not null DO
SET str = concat(str, ',', cid);
SELECT group_concat(id) INTO cid FROM paternal_tree where FIND_IN_SET(parent_id, cid) > 0;
END WHILE;
RETURN str;
END
这里在调用就行。