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
这里在调用就行。