在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql实现递归查询的方法

103次阅读
没有评论

共计 4399 个字符,预计需要花费 11 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 mysql 实现递归查询的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

mysql 实现递归查询的方法:首先创建表,并初始化数据;然后向下递归,利用【find_in_set()】函数和【group_concat()】函数实现递归查询。

mysql 实现递归查询的方法:

1、创建表

DROP TABLE IF EXISTS `t_areainfo`;
CREATE TABLE `t_areainfo` (`id` int(11) NOT 0 AUTO_INCREMENT,
 `level` int(11) DEFAULT 0 ,
 `name` varchar(255) DEFAULT 0 ,
 `parentId` int(11) DEFAULT 0 ,
 `status` int(11) DEFAULT 0 ,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;

2、初始数据

INSERT INTO `t_areainfo` VALUES ( 1 , 0 , 中国 , 0 , 0 
INSERT INTO `t_areainfo` VALUES ( 2 , 0 , 华北区 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 3 , 0 , 华南区 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 4 , 0 , 北京 , 2 , 0 
INSERT INTO `t_areainfo` VALUES ( 5 , 0 , 海淀区 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 6 , 0 , 丰台区 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 7 , 0 , 朝阳区 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 8 , 0 , 北京 XX 区 1 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 9 , 0 , 北京 XX 区 2 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 10 , 0 , 北京 XX 区 3 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 11 , 0 , 北京 XX 区 4 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 12 , 0 , 北京 XX 区 5 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 13 , 0 , 北京 XX 区 6 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 14 , 0 , 北京 XX 区 7 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 15 , 0 , 北京 XX 区 8 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 16 , 0 , 北京 XX 区 9 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 17 , 0 , 北京 XX 区 10 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 18 , 0 , 北京 XX 区 11 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 19 , 0 , 北京 XX 区 12 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 20 , 0 , 北京 XX 区 13 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 21 , 0 , 北京 XX 区 14 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 22 , 0 , 北京 XX 区 15 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 23 , 0 , 北京 XX 区 16 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 24 , 0 , 北京 XX 区 17 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 25 , 0 , 北京 XX 区 18 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 26 , 0 , 北京 XX 区 19 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 27 , 0 , 北京 XX 区 1 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 28 , 0 , 北京 XX 区 2 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 29 , 0 , 北京 XX 区 3 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 30 , 0 , 北京 XX 区 4 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 31 , 0 , 北京 XX 区 5 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 32 , 0 , 北京 XX 区 6 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 33 , 0 , 北京 XX 区 7 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 34 , 0 , 北京 XX 区 8 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 35 , 0 , 北京 XX 区 9 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 36 , 0 , 北京 XX 区 10 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 37 , 0 , 北京 XX 区 11 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 38 , 0 , 北京 XX 区 12 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 39 , 0 , 北京 XX 区 13 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 40 , 0 , 北京 XX 区 14 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 41 , 0 , 北京 XX 区 15 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 42 , 0 , 北京 XX 区 16 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 43 , 0 , 北京 XX 区 17 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 44 , 0 , 北京 XX 区 18 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 45 , 0 , 北京 XX 区 19 , 4 , 0 
INSERT INTO `t_areainfo` VALUES ( 46 , 0 , xx 省 1 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 47 , 0 , xx 省 2 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 48 , 0 , xx 省 3 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 49 , 0 , xx 省 4 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 50 , 0 , xx 省 5 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 51 , 0 , xx 省 6 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 52 , 0 , xx 省 7 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 53 , 0 , xx 省 8 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 54 , 0 , xx 省 9 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 55 , 0 , xx 省 10 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 56 , 0 , xx 省 11 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 57 , 0 , xx 省 12 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 58 , 0 , xx 省 13 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 59 , 0 , xx 省 14 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 60 , 0 , xx 省 15 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 61 , 0 , xx 省 16 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 62 , 0 , xx 省 17 , 1 , 0 
INSERT INTO `t_areainfo` VALUES ( 63 , 0 , xx 省 18 , 1 , 0 
INSERT INTO `t_areainfo` VALUES (64 , 0 , xx 省 19 , 1 , 0

3、向下递归

利用 find_in_set() 函数和 group_concat() 函数实现递归查询:

mysql 实现递归查询的方法

DROP FUNCTION IF EXISTS queryChildrenAreaInfo;
DELIMITER ;;
CREATE FUNCTION queryChildrenAreaInfo(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) 
END WHILE;
RETURN sTemp;
DELIMITER ;

4、调用方式

SELECT queryChildrenAreaInfo(1);

mysql 实现递归查询的方法

查询 id 为 4 下面的所有节点

SELECT * FROM t_areainfo WHERE FIND_IN_SET(id,queryChildrenAreaInfo(4));

5、向上递归

DROP FUNCTION IF EXISTS queryChildrenAreaInfo1;
DELIMITER;;
CREATE FUNCTION queryChildrenAreaInfo1(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;
DELIMITER ;

6、调用方式

查询 id 为 7 的节点的所有上级节点:

SELECT * from t_areainfo where FIND_IN_SET(id,queryChildrenAreaInfo1(7));

mysql 实现递归查询的方法

看完了这篇文章,相信你对 mysql 实现递归查询的方法有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计4399字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 日产精品久久久久久久性色 | 免费精品美女久久久久久久久 | 四川50岁熟妇大白屁股真爽 | 国产福利网 | 亚洲高清免费观看 | 黄色大片免费看 | 福利视频一二三在线视频免费观看 | 久久久久免费看成人影片 | 久久精品无码一区二区三区不卡 | 中国美女一级看片 | 亚洲精品在线影院 | 久久精品免视着国产成人 | 亚洲午夜视频在线观看 | 99久久久无码国产精品9 | 热久久中文字幕 | 中国特级黄一级真人毛片 | 蕾丝视频在线看片国产 | 国产玖玖视频 | 中文乱码人妻系列一区二区 | 九九久久久 | 久久久久久亚洲精品中文字幕 | 国产91精品在线播放 | 国产特级毛片aaaaaa | 巨大黑人极品videos精品 | 老师露双奶头无遮挡挤奶视频 | 亚洲人成网亚洲欧洲无码 | 午夜精品久久久内射近拍高清 | 99v久久综合狠狠综合久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美特黄特色三级视频在线观看 | 国内一级纶理片免费 | 国产亚洲综合一区二区在线 | 九九精品免视看国产成人 | 人妻精品久久无码区 | 一区欧美 | 久久久无码人妻精品一区 | 国产精品区一区二区三在线播放 | 99av在线| 精品久久久久久中文字幕无碍 | 最新主播福利视频在线观看 | 欧美精品视 |