当前位置:Gxlcms > 数据库问题 > mysql函数递归

mysql函数递归

时间:2021-07-01 10:21:17 帮助过:4人阅读

CREATE FUNCTION findOrgan//5(areaId VARCHAR(255)//1) RETURNS VARCHAR(4000) BEGIN DECLARE sTemp VARCHAR(4000); DECLARE sTempChd VARCHAR(4000); SET sTemp=$; SET sTempChd = CAST(areaId AS CHAR); WHILE sTempChd IS NOT NULL DO SET sTemp= CONCAT(sTemp,,,sTempChd); SELECT GROUP_CONCAT(OR_ID)//2 INTO sTempChd FROM sys_organ//3 WHERE FIND_IN_SET(PARENT_ID//4,sTempChd)>0; END WHILE; RETURN sTemp; END;

这是查询某组织节点及它下属所有节点,

1.这是输入参数的类型

2.这是组织表组织id

3这是组织表

4这是组织表父级id

5这是你要定义的函数名

技术分享图片

我用的是navicat,点击运行之后就可以看到

技术分享图片

接下来我们测试一下

技术分享图片

查询了所有的组织id为1的下属id(包括自身)

SELECT OR_ID from sys_organ where FIND_IN_SET(OR_ID,findOrgan(1))

这是数据库查询组织id为1的下属id,示例如下

技术分享图片

那么用这些id也就可以查到我们想要的数据了

mysql函数递归

标签:没有   直接   turn   组织   ora   alt   sql   sele   http   

人气教程排行