Mysql 没有递归的参数,需要自定义函数,才能使用递归,方法如下,仅供参考:
1.在数据库定义如下方法;
DETERMINISTIC (注,有主从的情况下使用,数据一致性)
BEGIN
DECLARE
sTemp VARCHAR(4000);
DECLARE
sTempChd VARCHAR(4000);
SET sTemp = '$';
SET sTempChd = cast(rootId as char);
WHILE sTempChd IS NOT NULL DO
SET sTemp = concat(sTemp, ',', sTempChd);
SELECT group_concat(org_id) INTO sTempChd
FROM
table_name
WHERE
FIND_IN_SET(parent_org_id, sTempChd) > 0;
END
WHILE;
RETURN sTemp;
END
参数 rootId INT
返回类型 varchar(4000)
函数名称 GETCHILDIDLIST
2.使用方法:
select ORG_ID from table_name
where FIND_IN_SET(ORG_ID,getChildidList(#ORG_ID#))
示例;