mysql 递归查询所有子节点(子部门)返回id集合
一、导读
当我们查询所有的当前部门下以及当前部门下面的所有子部门,需要就需要我们获取所有当前节点和子节点的id,这里使用mysql的递归查询来实现。查找给定分类编码查找分类及其所有子类,包含子类的子类。
最近在做一个从oracle数据库到mysql数据库的移植,遇到一个这样的问题
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但是,在MySQL的目前版本中还没有对应的函数。今天介绍一下mysql的递归查询。
二、实现sql
CREATE DEFINER=`root`@`%` FUNCTION `getChildLst`(rootId INT) RETURNS varchar(1000) CHARSET utf8
BEGIN DECLARE sTemp VARCHAR(1000); DECLARE sTempChd VARCHAR(1000); SET sTemp = '$'; SET sTempChd =cast(rootId as CHAR); WHILE sTempChd is not null DO SET sTemp = concat(sTemp,',',sTempChd); SELECT group_concat(id) INTO sTempChd FROM fds_department where FIND_IN_SET(PARENT_ID,sTempChd)>0; END WHILE; RETURN sTemp; END;
select getChildLst(1);
返回
getChildLst(1) |
---|
$,1,2,4,3 |
就是查询根节点是1的所有子节点id
三、解析
- 首先 表名是 fds_department ,里面就是2个主要字段ID和PARENT_ID;一个变量就是’110’ 要查询的菜单节点。
mysql 递归查询所有子节点(子部门)返回id集合相关推荐
- mysql根据父节点递归查询所有子节点
mysql根据父节点递归查询所有子节点 在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点 ...
- MySQL递归查询所有下级节点
MySQL递归查询所有下级节点. 先上SQL后来讲解其中的含义. select id from (select t1.id,t1.inviteId,if(find_in_set(inviteId, @ ...
- MYSQL递归查询所有父节点
MYSQL递归查询所有父节点 1.表结构: CREATE TABLE `t_busi_system` (`ID` varchar(64) NOT NULL COMMENT '标识',`PARENT_I ...
- java用户里获取部门id_javaWeb开发,根据部门ID查询该部门和下属所有部门的ID集合...
由于博主太菜,就直接上图了,结果是正确的. 1:首先看下数据库 2:对应的实体类 3:mapper.xml和mapper.java 再xml中根据限定条件查询出当前所有的部门集合 4:在service ...
- mysql递归查询所有上下节点_【转】MySQL之Spider存储引擎原理详解
一.概述 Spider是为MySQL/MariaDB开发的一个特殊引擎,具有内嵌分片功能.MariaDB从10.0.4开始支持Spider.作为MariaDB的一个新的主要特性.Spider的主要功能 ...
- oracle获取所有子节点,oracle递归查询所有子节点
Q4:Oracle通过递归查询父子兄弟节点方法示例 前言 说到Oracle中的递归查询语法,我觉得有一些数据库基础的童鞋应该都知道,做项目的时候应该也会用到,下面本文就来介绍下关于Oracle通过递归 ...
- mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...
- mysql 递归查询树型结构_MySQL递归查询所有子节点,树形结构查询
--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...
- mysql 树形结构 sql_MySQL递归查询所有子节点,树形结构查询
--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...
最新文章
- 关于python创建类的深入理解
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
- addEntriesFromDictionary用法
- 【深度学习】搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
- 第1章 计算机系统概述小节
- java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?
- python批量导入网页信息_python批量导入数据进Elasticsearch的实例
- [转]网络爬虫(一):抓取网页的含义和URL基本构成
- mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
- Leetcode108. 有序数组转为二叉树
- ACL2021 | 探讨跨句事件联合抽取问题
- adb ps shell 查看进程_Appium学废系列(三) adb调试桥命令
- python mysql传入多个参数
- 基于JavaWeb的企业出差费用报销管理系统设计与实现
- 在C#中用一个按钮控制斑马zebra条码打印机进行打印
- 2017年11月软考全国各省市报名时间及报名网址(动态更新)
- 2019年伯克利大学 CS294-112《深度强化学习》第4讲:强化学习简介(笔记)
- linux 命令英文全称
- 蓝拓扑便携式分析仪驱动程序_拔出便携式USB硬盘驱动器会损坏计算机吗?
- 非主流闪图头像教程:扩散粒子效果