600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 根据子节点查找根节点

根据子节点查找根节点

时间:2024-03-27 14:59:41

相关推荐

根据子节点查找根节点

面试官给我画个表 让我根据0找100 没见过世面的我一顿胡说八道

回来钻研了下正确的解决办法

参考 MySQL中进行树状所有子节点的查询_nano-dhh-CSDN博客

关键的点是

1.while循环(我连mysql能while循环都不知道)

2.把parentid复制给id去找id的parentid 直到返回结果为空 那这个就是根节点了

为什么我得sql里要写两个select 因为最后返回空的时候就捕捉不到了 所以得找返回空之前的

我得函数

CREATE FUNCTION `getParentList`(rootId INT)RETURNS varchar(1000)BEGINDECLARE sParentTemp varchar(1000);DECLARE sParentTemp1 varchar(1000);SET sParentTemp = cast(rootId as CHAR);WHILE sParentTemp is not null DOSELECT group_concat(parentid) INTO sParentTemp1 FROM user_role where id=sParentTemp;IF (sParentTemp1 IS NULL) THEN SET sParentTemp1 = sParentTemp;ELSE SET sParentTemp1 = NULL;END IF;SELECT group_concat(parentid) INTO sParentTemp FROM user_role where id=sParentTemp;END WHILE;RETURN sParentTemp1;END;

调用sql

select parentid From user_role where parentid=getParentList(0);

运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。