创建数据表

CREATE TABLE `area` (`id` int(9) NOT NULL AUTO_INCREMENT,`name` varchar(100) DEFAULT NULL COMMENT '地区名',`level` tinyint(2) DEFAULT NULL COMMENT '区域等级',`parent` int(9) DEFAULT NULL COMMENT '父级地区ID',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;

插入数据

BEGIN;
INSERT INTO `area` VALUES (1, '中国', 1, 0);
INSERT INTO `area` VALUES (4, '杭州', 3, 20);
INSERT INTO `area` VALUES (5, '成都市', 3, 10);
INSERT INTO `area` VALUES (6, '双流区', 4, 5);
INSERT INTO `area` VALUES (7, '武侯区', 4, 5);
INSERT INTO `area` VALUES (8, '锦江区', 4, 5);
INSERT INTO `area` VALUES (9, '青羊区', 4, 5);
INSERT INTO `area` VALUES (10, '四川省', 2, 1);
INSERT INTO `area` VALUES (11, '成华区', 4, 5);
INSERT INTO `area` VALUES (12, '上城区', 4, 4);
INSERT INTO `area` VALUES (13, '拱墅区', 4, 4);
INSERT INTO `area` VALUES (14, '西湖区', 4, 4);
INSERT INTO `area` VALUES (15, '滨江区', 4, 4);
INSERT INTO `area` VALUES (16, '萧山区', 4, 4);
INSERT INTO `area` VALUES (17, '宁波', 3, 20);
INSERT INTO `area` VALUES (18, '海曙区', 4, 17);
INSERT INTO `area` VALUES (19, '江北区', 4, 17);
INSERT INTO `area` VALUES (20, '浙江省', 2, 1);
INSERT INTO `area` VALUES (21, '镇海区', 4, 17);
INSERT INTO `area` VALUES (22, '北仑区', 4, 17);
INSERT INTO `area` VALUES (23, '鄞州区', 4, 17);
INSERT INTO `area` VALUES (24, '奉化区', 4, 17);
INSERT INTO `area` VALUES (25, '南充市', 3, 10);
INSERT INTO `area` VALUES (26, '南部县', 4, 25);
INSERT INTO `area` VALUES (27, '顺庆区', 4, 25);
INSERT INTO `area` VALUES (28, '高坪区', 4, 25);
INSERT INTO `area` VALUES (29, '嘉陵区', 4, 25);
INSERT INTO `area` VALUES (30, '阆中市', 4, 25);
INSERT INTO `area` VALUES (31, '西充县', 4, 25);
INSERT INTO `area` VALUES (32, '蓬安县', 4, 25);
INSERT INTO `area` VALUES (33, '营山县', 4, 25);
COMMIT;

递归查询

SELECTid,`name`,`level`,parent
FROM(SELECTt1.*,IF(FIND_IN_SET( parent, @pids ) > 0,@pids :=IF( FIND_IN_SET( id, @pids ) <= 0, CONCAT( @pids, ',', id ), @pids ),0 ) AS ischild FROM( SELECT * FROM area ORDER BY `level`, id ) t1,( SELECT @pids := 10 ) t2 HAVINGischild != 0 ) AS t3

大家若要使用的话,将( SELECT @pids := 10 ) t2 中的 10 替换成你想要查询的地区就可以了,当然表结构不同的需要将对应字段进行替换哈。我这里查询的是 ID 为10 的四川省的所有下级,结果如下

5    成都市 3   10
25  南充市 3   10
6   双流区 4   5
7   武侯区 4   5
8   锦江区 4   5
9   青羊区 4   5
11  成华区 4   5
26  南部县 4   25
27  顺庆区 4   25
28  高坪区 4   25
29  嘉陵区 4   25
30  阆中市 4   25
31  西充县 4   25
32  蓬安县 4   25
33  营山县 4   25

欢迎访问我的博客 原文地址

MySQL 递归查询下级相关推荐

  1. MySQL递归查询所有下级节点

    MySQL递归查询所有下级节点. 先上SQL后来讲解其中的含义. select id from (select t1.id,t1.inviteId,if(find_in_set(inviteId, @ ...

  2. Mysql递归查询,无限级上下级菜单

    mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到) 由于mysql 不支持类似 oracle with ...connect的 递归查询语法 之前一直以为类似的查询要么用存储 ...

  3. mysql递归查询解决方案_递归实践问题与解决方案

    mysql递归查询解决方案 Recursion practice problems: Here, you will find the various recursion practice proble ...

  4. MYSQL递归查询,根据子类ID查询所有父类(宇宙第一详细教程)

    前言 工作中业务需求碰到了MYSQL递归这个点,网上资料大都抄来抄去,虽然代码的确能运行.但是萌新是真的看不懂这SQL写的什么玩意啊,看底下评论很多人提问皆是未回复,自己狠下心花了一上午时间,把这个点 ...

  5. MySQL递归查询,Oracle递归查询,MyBatis+MySQL实现递归查询

    递归查询用于查询树形结构的列表,比如行政区列表.包括向下递归查询:根据父级查询子级:向上查询:根据子级查询父级.mysql需要使用存储函数,oracle可以使用connect by语句直接查询. My ...

  6. mysql递归查询方法|mysql递归查询遇到的坑,教你们解决办法

    1.前言 大家在用mysql递归查询的时候,肯定或多或少的会碰到一些问题,像小编就遇到了天大的坑(如下图),于是自己踩了坑,我得想办法把它铺一铺吖,避免大家也同时遇到这样的问题.让技术人能够快速的解决 ...

  7. MYSQL递归查询所有父节点

    MYSQL递归查询所有父节点 1.表结构: CREATE TABLE `t_busi_system` (`ID` varchar(64) NOT NULL COMMENT '标识',`PARENT_I ...

  8. sql递归查询上级_递归的实际业务场景之MySQL 递归查询

    喜欢就点个赞呗! 源码<--请点击此处查看 引入 当我看到一些评论时,例如下面的样子.我挺好奇这个功能是怎么样做出来的.进过查阅资料,发现这其实是 MySQL 的递归操作.下面就让我操作一下怎么 ...

  9. mysql 递归查询所有子节点(子部门)返回id集合

    一.导读 当我们查询所有的当前部门下以及当前部门下面的所有子部门,需要就需要我们获取所有当前节点和子节点的id,这里使用mysql的递归查询来实现.查找给定分类编码查找分类及其所有子类,包含子类的子类 ...

  10. Mysql递归查询(通过自定义函数,实现父子类关系查询)

    父子类树tree的关系,比如部门层次结构,菜单结构,可能我们更改了一级的数据,下面的所有子类以及子孙类都需要更改, 可以自定义mysql函数,进行查询出先关联数据,递归查询: 创建测试表: CREAT ...

最新文章

  1. 2020最大赢家!马斯克身家达1600亿美元,2张图拆解他的巨额财富
  2. 小心内存也会引起蓝屏
  3. Adobe Audition录制音频与剪辑
  4. Java中input与output_java中的Io(input与output)操作总结(四)
  5. Oracle自定义聚集函数
  6. SecureCRT同时向多个终端发送命令
  7. P4245 【模板】任意模数多项式乘法(NTT)
  8. JSONObject,JSONArray,对象,数组互相转化
  9. 南充一中计算机机房被盗,成都理工大学与南充市第一中学共建优质生源基地
  10. 中国自主可控的全数字实时仿真软件SkyEye支持龙芯CPU指令级仿真
  11. 近期关于感知器MLP的最新研究
  12. python中的Pickle文件和npy文件
  13. 云迁移实践:VMware虚拟机迁移到腾讯云
  14. CCNA、CCNP、H3C认证精品视频课程
  15. Android启动页设置
  16. 工业品B2B平台5大要诀,降低企业采购成本捷径
  17. 微信小程序利用canvas绘制一个静态百分比圆圈
  18. java窗口如何定时关闭_[Java教程]【温故而知新】Javascript窗口效果 (全屏显示窗口、定时关闭窗口)_星空网...
  19. swoole运行的时候提示端口被占用问题
  20. 如何成为一名好的项目经理?

热门文章

  1. 山东省计算机二级c语言题,2012计算机二级C语言题库.doc
  2. 【python】conda配置python项目环境(Conda常用命令)
  3. Kotlin 中文文档
  4. Java中的数据结构之常见的五种数据结构
  5. YACC介绍(译文)
  6. Python接口自动化之使用requests库发送http请求
  7. hex2bin 64bit
  8. python处理地震sac数据_Fortran批量读取SAC地震数据文件,写SAC文件,并转换成SEGY...
  9. qi无线充电协议_无线充电Qi专利池正式上线!
  10. 象棋 计算机配置,象棋名手要什么配置的电脑运行最佳,用来弈天砍分