今天小编遇到了一个需求,需要使用mysql查询部门下面所有子部门,换句话来说就是查询节点下的所有节点,因为一直使用的是oracle,oracle有个start with .... connect by pripor.....用来递归查询子节点,但是MySQL不存在这个,所以在网上就去百度了一下,发现很多代替oracle中的start with .... connect by pripor。但是看着都很复杂,所以一直找,终于找到了一个可以看着比较简单的方法,然后就在此处和大家一起分享一下,共同进步。

create table CODE_DEPT (
  dwdm   VARCHAR2(12) not null,
  dwmc   VARCHAR2(256) not null,
  jb     VARCHAR2(1) not null,
  sjdwdm VARCHAR2(12),
  jllx   VARCHAR2(1) not null,
  dwjc   VARCHAR2(256)
);

insert into code_dept (DWDM, DWMC, JB, SJDWDM, JLLX, DWJC)
values ('1', '警察大队腊口中队', '5', '2', '0', '腊口中队');

insert into code_dept (DWDM, DWMC, JB, SJDWDM, JLLX, DWJC)
values ('2', '交通警察大队仁庄中队', '5', '3', '0', '仁庄中队');

insert into code_dept (DWDM, DWMC, JB, SJDWDM, JLLX, DWJC)
values ('3', '交通警察支队交管科', '3', '2', '0', '交管科');

查询子节点的SQL如下

select dwdm from (
              select t1.dwdm,
              if(find_in_set(sjdwdm, @pids) > 0, @pids := concat(@pids, ',', dwdm), 0) as ischild
              from (
                   select dwdm,sjdwdm from code_dept t where t.jllx = '0' order by sjdwdm, dwdm
                  ) t1,
                  (select @pids := 要查询的菜单节点id ) t2
             ) t3 where ischild != 0

最后面的那句 where ischild != 0,是表示不包含你所查询的那个节点;

本人已经测试了,完全no problem

希望对你们有帮助

mysql 递归查找部门下面的所有被这个部门管理的部门(mysql 递归查找节点的所有子节点)相关推荐

  1. 递归删除父节点及所有子节点(转)

    --递归删除父节点及所有子节点create table tb(Id int, ParentId int, Name varchar(5))insert into tb select 1, 0, 'a1 ...

  2. mysql查询某节点的所有子节点

    mysql查询某节点的所有子节点,支持无限级 SELECTid ,parent_id,name FROM(SELECTt1.id,t1.name,t1.parent_id,IF( find_in_se ...

  3. MySql语句查询某一级节点的所有子节点

    MySql语句查询某一级节点的所有子节点 ​ 在日常项目中,我们总能用到树型结构的数据,我们用代码去进行查询是比较麻烦的,这里提供一种sql语句查询父节点和子节点的方法. ​ 说明:只能当前节点查出所 ...

  4. mysql根据父节点递归查询所有子节点

    mysql根据父节点递归查询所有子节点 在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点 ...

  5. Java递归查询某个节点下所有子节点多级信息(递归部门查询,递归树形结构数据查询)

    前言 在做项目中我们会遇到树形结构数据,如果我们想要查询某个几点下面所有子节点(多级)数据,此时我们又不知道下面有多少级节点以及节点ID,那么我们就需要使用递归去查询了,当然在数据库中写函数也是可以实 ...

  6. mysql获取当前节点的所有叶子节点_mssql sqlserver 如何获取一个叶子节点下所有子节点呢?...

    摘要: 下文sql技巧-获取所有子节点的方法分享,如下所示: 实现思路: 通过while循环依次遍历节点,然后将起添加到临时表中返回 即可通过节点获取所有子节点 例: create table [ma ...

  7. mysql树节点【所有子节点列表 and 查询所有父节点列表】

    /**所有子节点列表*/ delimiter // CREATE FUNCTION `getChildList`(rootId varchar(100)) RETURNS varchar(2000) ...

  8. MySQL查询所有父节点与所有子节点

    先贴查询所有父节点 SELECT             T2.*          FROM             (             SELECT                 @R ...

  9. mysql查找无根节点sql_SQL 双亲节点查找所有子节点的实现方法

    怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法.创建表如下 CREATE TABLE category ( id LONG, parentId LONG, name String(20) ...

最新文章

  1. shell实例第10讲:判断用户输入的是否为数字
  2. linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf
  3. TCP UDP HTTP 的关系和区别
  4. Spring 3.1配置文件和Tomcat配置
  5. lesson 7 strategies for efficient CUDA programming
  6. Java匹马行天下之 Java国出了个Java——举国欢庆
  7. CSSG:Cobalt Strike Shellcode生成工具
  8. protues仿真8086常见问题
  9. 高斯克吕格投影与墨卡托投影(通用横轴墨卡托、web墨卡托等)
  10. 舆情监控系统python开源_舆情监测系统开源
  11. 【HCIE 论述题】OSPF-1(区域划分)
  12. 根据经纬度来计算旋转矩阵
  13. css——居中对齐方法
  14. STM32学习记录——MD300二维码扫描模块
  15. 赵鑫:强化学习在京东广告序列推荐中的应用
  16. 50内的勾股数java_学习知识:50以内勾股数有哪些
  17. Python repr()函数
  18. 面试官:什么是责任链模式?
  19. 【原创】CSDN·Markdown·KaTex/LaTex 用法小全
  20. 打印101~150之间的质数

热门文章

  1. Python如何爬取《王者荣耀盒子》APP
  2. 互动媒体技术有关十二个“一”的文艺创作-拓展版
  3. 一位搬家师傅的O2O之旅
  4. 小程序 发表评论功能
  5. 如何做好游戏内实时语音体验 1
  6. 我的架构师历程,其实一切只是源于我想要一台属于自己的笔记本(上)
  7. 第二十二节:通信之WLAN(802.11ax@TWT-I)
  8. 利用exe4j生成java的exe文件
  9. 微信小程序之--开发环境配置
  10. Topic 2. 生存分析之 Kaplan-Meier