一、导读

当我们查询所有的当前部门下以及当前部门下面的所有子部门,需要就需要我们获取所有当前节点和子节点的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

三、解析

  1. 首先 表名是 fds_department ,里面就是2个主要字段ID和PARENT_ID;一个变量就是’110’ 要查询的菜单节点。

mysql 递归查询所有子节点(子部门)返回id集合相关推荐

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

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

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

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

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

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

  4. java用户里获取部门id_javaWeb开发,根据部门ID查询该部门和下属所有部门的ID集合...

    由于博主太菜,就直接上图了,结果是正确的. 1:首先看下数据库 2:对应的实体类 3:mapper.xml和mapper.java 再xml中根据限定条件查询出当前所有的部门集合 4:在service ...

  5. mysql递归查询所有上下节点_【转】MySQL之Spider存储引擎原理详解

    一.概述 Spider是为MySQL/MariaDB开发的一个特殊引擎,具有内嵌分片功能.MariaDB从10.0.4开始支持Spider.作为MariaDB的一个新的主要特性.Spider的主要功能 ...

  6. oracle获取所有子节点,oracle递归查询所有子节点

    Q4:Oracle通过递归查询父子兄弟节点方法示例 前言 说到Oracle中的递归查询语法,我觉得有一些数据库基础的童鞋应该都知道,做项目的时候应该也会用到,下面本文就来介绍下关于Oracle通过递归 ...

  7. mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询

    --表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

  8. mysql 递归查询树型结构_MySQL递归查询所有子节点,树形结构查询

    --表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

  9. mysql 树形结构 sql_MySQL递归查询所有子节点,树形结构查询

    --表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

最新文章

  1. 关于python创建类的深入理解
  2. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
  3. addEntriesFromDictionary用法
  4. 【深度学习】搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
  5. 第1章 计算机系统概述小节
  6. java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?
  7. python批量导入网页信息_python批量导入数据进Elasticsearch的实例
  8. [转]网络爬虫(一):抓取网页的含义和URL基本构成
  9. mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
  10. Leetcode108. 有序数组转为二叉树
  11. ACL2021 | 探讨跨句事件联合抽取问题
  12. adb ps shell 查看进程_Appium学废系列(三) adb调试桥命令
  13. python mysql传入多个参数
  14. 基于JavaWeb的企业出差费用报销管理系统设计与实现
  15. 在C#中用一个按钮控制斑马zebra条码打印机进行打印
  16. 2017年11月软考全国各省市报名时间及报名网址(动态更新)
  17. 2019年伯克利大学 CS294-112《深度强化学习》第4讲:强化学习简介(笔记)
  18. linux 命令英文全称
  19. 蓝拓扑便携式分析仪驱动程序_拔出便携式USB硬盘驱动器会损坏计算机吗?
  20. 非主流闪图头像教程:扩散粒子效果

热门文章

  1. MAC上使用密钥登录腾讯云轻量级服务器 保存连接信息 一键登录 保姆级教程
  2. 维修记录,移动升级千兆宽带过程中的坑
  3. 静态网站生成器Gridsome
  4. 基于Vue,Vue-router,Vuex的简书网站模仿
  5. java中Boolean和boolean的区别
  6. Qt 之格栅布局(QGridLayout)
  7. 大数据相加_大数据如何快速求和 excel大数据批量求和
  8. 小米盒子投屏+android,小米盒子投屏神器
  9. 看这篇C语言基础就够了(2020-04-19)
  10. 用PHP如何实现解析抖音无水印视频