
如何利用mysql语法实现递归向上查询和递归向下查询所有数据,下面给介绍一下2种不同方法的书写。
向上递归方法:
DROP FUNCTION IF EXISTS queryChildrenData; DELIMITER;; CREATE FUNCTION queryChildrenData(areaId INT) RETURNS VARCHAR(4000) BEGIN DECLARE sTemp VARCHAR(4000); DECLARE sTempChd VARCHAR(4000); SET sTemp='$'; SET sTempChd = CAST(areaId AS CHAR); SET sTemp = CONCAT(sTemp,',',sTempChd); SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd; WHILE sTempChd <> 0 DO SET sTemp = CONCAT(sTemp,',',sTempChd); SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd; END WHILE; RETURN sTemp; END ;; DELIMITER ;
调用方法:
SELECT * from t_areainfo where FIND_IN_SET(id,queryChildrenData(查当前id向上的所有数据));
向下递归方法:
DROP FUNCTION IF EXISTS queryChildrenData2; DELIMITER ;; CREATE FUNCTION queryChildrenData2(areaId INT) 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(id) INTO sTempChd FROM t_areainfo WHERE FIND_IN_SET(parentId,sTempChd)>0; END WHILE; RETURN sTemp; END ;; DELIMITER ;
调用方法:
SELECT * FROM t_areainfo WHERE FIND_IN_SET(id,queryChildrenData(查当前id向下的所有数据));
标签: find_in_set, group_concat, mysql查询, 递归查询
上面是“mysql如何实现递归向上查询和递归向下查询所有数据”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。
当前网址:https://m.ipkd.cn/webs_3603.html
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

Manzano:苹果推出的统一图像理解与生成多模态大语言模型
利用css3做一个loading闪点加载中效果(附代码)
Emra Voice:AI智能语音工具包 140字/分钟极速输入 高效记录总结
计算机有哪些病毒,针对office软件的是那种病毒
岁羽视频智能:AI在线视频处理工具,去字幕/去水印/提字幕一键搞定