如何利用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://ipkd.cn/webs_3603.html
workflows工作流
- 3D几何打印人体模型ComfyUI工作流
- 在月球上穿着太空服的宇航员
- 一颗柔和的水晶金字塔ComfyUI工作流
- 树枝上一只色彩斑斓的小鸟
- 文生图工作流:树枝上站着一只鸟
- 树上挂着一只快乐的荔枝ComfyUI工作流
- 图片转视频ComfyUI工作流
- 水中一台精致而破旧的老式电视鱼缸ComfyUI工作流
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!