
如何利用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,我们会在看到邮件的第一时间内为您处理!

大中型网站的SEO定位工作应该如何开展?
Cloud Browser API:GoLogin推出的云浏览器基础设施产品
3d文字动画效果
一款专为电商和创意设计领域打造的AI服装模特生成工具——aoGen
CoF:DeepMind 提出的视频模型时空推理新范式