DROP FUNCTION IF EXISTS `getChildLst`;
CREATE DEFINER = `root`@`%` FUNCTION `getChildLst`(rootId INT)
RETURNS varchar(1000)
BEGIN
DECLARE sTemp VARCHAR(3000);
DECLARE sTempChd VARCHAR(3000);
SET sTemp = "-1";
SET sTempChd =cast(rootId as CHAR);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(g.groupid) INTO sTempChd FROM wcmgroup g where FIND_IN_SET(g.parentid, sTempChd)>0;
END WHILE;
RETURN sTemp;
END;
通过rootid遍历rootid一下的所有子节点
本文提供了一个SQL函数,用于通过输入的rootid查询并返回该节点及其所有子节点的ID列表。使用了GROUP_CONCAT函数和FIND_IN_SET函数来实现递归查询。
790

被折叠的 条评论
为什么被折叠?



