mysql 递归查找部门下面的所有被这个部门管理的部门(mysql 递归查找节点的所有子节点)
今天小编遇到了一个需求,需要使用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 递归查找节点的所有子节点)相关推荐
- 递归删除父节点及所有子节点(转)
--递归删除父节点及所有子节点create table tb(Id int, ParentId int, Name varchar(5))insert into tb select 1, 0, 'a1 ...
- mysql查询某节点的所有子节点
mysql查询某节点的所有子节点,支持无限级 SELECTid ,parent_id,name FROM(SELECTt1.id,t1.name,t1.parent_id,IF( find_in_se ...
- MySql语句查询某一级节点的所有子节点
MySql语句查询某一级节点的所有子节点 在日常项目中,我们总能用到树型结构的数据,我们用代码去进行查询是比较麻烦的,这里提供一种sql语句查询父节点和子节点的方法. 说明:只能当前节点查出所 ...
- mysql根据父节点递归查询所有子节点
mysql根据父节点递归查询所有子节点 在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点 ...
- Java递归查询某个节点下所有子节点多级信息(递归部门查询,递归树形结构数据查询)
前言 在做项目中我们会遇到树形结构数据,如果我们想要查询某个几点下面所有子节点(多级)数据,此时我们又不知道下面有多少级节点以及节点ID,那么我们就需要使用递归去查询了,当然在数据库中写函数也是可以实 ...
- mysql获取当前节点的所有叶子节点_mssql sqlserver 如何获取一个叶子节点下所有子节点呢?...
摘要: 下文sql技巧-获取所有子节点的方法分享,如下所示: 实现思路: 通过while循环依次遍历节点,然后将起添加到临时表中返回 即可通过节点获取所有子节点 例: create table [ma ...
- mysql树节点【所有子节点列表 and 查询所有父节点列表】
/**所有子节点列表*/ delimiter // CREATE FUNCTION `getChildList`(rootId varchar(100)) RETURNS varchar(2000) ...
- MySQL查询所有父节点与所有子节点
先贴查询所有父节点 SELECT T2.* FROM ( SELECT @R ...
- mysql查找无根节点sql_SQL 双亲节点查找所有子节点的实现方法
怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法.创建表如下 CREATE TABLE category ( id LONG, parentId LONG, name String(20) ...
最新文章
- shell实例第10讲:判断用户输入的是否为数字
- linux 解析pdf下载工具,Linux高级系统级性能分析工具-perf.pdf
- TCP UDP HTTP 的关系和区别
- Spring 3.1配置文件和Tomcat配置
- lesson 7 strategies for efficient CUDA programming
- Java匹马行天下之 Java国出了个Java——举国欢庆
- CSSG:Cobalt Strike Shellcode生成工具
- protues仿真8086常见问题
- 高斯克吕格投影与墨卡托投影(通用横轴墨卡托、web墨卡托等)
- 舆情监控系统python开源_舆情监测系统开源
- 【HCIE 论述题】OSPF-1(区域划分)
- 根据经纬度来计算旋转矩阵
- css——居中对齐方法
- STM32学习记录——MD300二维码扫描模块
- 赵鑫:强化学习在京东广告序列推荐中的应用
- 50内的勾股数java_学习知识:50以内勾股数有哪些
- Python repr()函数
- 面试官:什么是责任链模式?
- 【原创】CSDN·Markdown·KaTex/LaTex 用法小全
- 打印101~150之间的质数