今天小编遇到了一个需求,需要使用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. AI | 优化背后的数学基础
  2. 用计算机画函数图像教案,信息技术应用 用计算机画函数图象教案1
  3. 计算机的几种类型单词、快捷键
  4. boost::fusion::erase用法的测试程序
  5. 创建调用查询删除存储过程语法
  6. java获取操作系统信息
  7. iphone查看删除的短信_苹果删除的短信
  8. ZBrush中的Clip剪切笔刷怎么快速运用
  9. Spring笔记2——Spring中Bean的装配
  10. 【操作系统】进程的异步性
  11. IoU实现 python
  12. docker 基本指令
  13. Atitit.  Js 冒泡事件阻止 事件捕获   事件传递  事件代理
  14. dcs与plc与c语言的联系,PLC与和DCS系统通讯的实现
  15. Flask debug模式算pin码
  16. 软件需求工程 高校教学平台 项目总结报告
  17. 第三方百度地图-----展示所在位置显示小圆点
  18. 前端存储之cookie、localStorage、sessionStorage、indexDB
  19. yii通过uc实现同步登陆
  20. 稀疏编码(sparsecode)简单理解

热门文章

  1. bzoj 1040 1040: [ZJOI2008]骑士
  2. JS实现查找是否一个元素出现两次或者多次以上
  3. 小森林顺序_电影小森林先看哪部 电影小森林经典语录
  4. Windows OS中关闭445 Port
  5. 如何防治游戏内的“黑产”拉人?
  6. 计算机软件投资价值,近七个交易日计算机软件概念股市复盘简讯,龙头具有长期投资价值(4月18日)...
  7. WINE会议详细介绍(Conference on Web and Internet Economics,又名Workshop on Internet Network Economics)
  8. 魔兽世界编程宝典读书笔记(9)
  9. CF671D Roads in Yusland
  10. 非诚勿扰,选心动女生(小游戏)