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

小画桌:一款轻量便捷、全终端 、可视化的免费在线协作白板
HuHu.ai:一个专注于电商领域的AI平台,支持AI虚拟试穿
轻松筹:一个专注于公众健康保障领域的社交众筹平台
javascript如何利用WebSocket对象实现Ping命令的实时通信
一款免费开源的在线海报设计工具——Gzm design(果米设计)