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

在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点的方法需要额外维护函数,故而增加了维护成本,于是我们有了通过直接改用sql
查询的方式来实现递归查询。

根据一个父节点查询所有子节点(包含自身)

SELECT au.id
FROM (SELECT * FROM t_app_user WHERE parent_id IS NOT NULL) au,(SELECT @pid := '1') pd
WHERE FIND_IN_SET(parent_id, @pid) > 0 AND @pid := concat(@pid, ',', id)
union select id from t_app_user where id = '1';

根据多个父节点查询所有子节点(包含自身)

SELECT au.id
FROM (SELECT * FROM t_app_user WHERE parent_id IS NOT NULL) au,(SELECT @pid := '1,4') pd
WHERE FIND_IN_SET(parent_id, @pid) > 0 AND @pid := concat(@pid, ',', id)
union select id from t_app_user where FIND_IN_SET(id,@pid) > 0;

原文地址:https://blog.csdn.net/xikaifeng/article/details/115631724

mysql根据父节点递归查询所有子节点相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Java根据父节点获取所有子节点

    通过递归调用的方式根据父节点获取所有子节点并返回列表: //1. 查找父节点位置://2. 根据父节点获取下面的子节点://3. 遍历得到下面的子节点:public static List<St ...

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

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

  8. vue实现echarts树图修改节点图片,修改连线颜色,鼠标悬停显示详情,鼠标右键弹出菜单,搜索,导出PNG,高亮,查看节点是否还有子节点,修改树图的展示方式

    其实这些效果之前都有用js写过,但是最近在写vue项目,里面的些许语法还是有些不一样的,所以还是写一遍文章总结一下,下次遇到就可以直接用了. 如果想看js写法,可以看我别的文章 首先,实现效果入下图: ...

  9. mysql 递归查询所有子节点(子部门)返回id集合

    一.导读 当我们查询所有的当前部门下以及当前部门下面的所有子部门,需要就需要我们获取所有当前节点和子节点的id,这里使用mysql的递归查询来实现.查找给定分类编码查找分类及其所有子类,包含子类的子类 ...

最新文章

  1. python升级知识整理 第五节:文件整理
  2. 英特尔王锐:软硬件并驾齐驱,开发者是真英雄
  3. 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单
  4. 【Python】统计字符串里某个字符或子字符串出现的次数
  5. hash和history两种模式的区别+SpringBoot的特定配置
  6. Python KNN K近邻分类
  7. 【Python】异常捕获
  8. linux机器设置密码,Linux系统设置复杂安全的密码的办法
  9. Bootstrap学习笔记01
  10. 关于BI商业智能的“8大问”|一文读懂大数据BI
  11. OSX系统编译cocos2dx andriod工程
  12. Android:手把手教你打造可缩放移动的ImageView(下)
  13. DDD中的Specification模式
  14. 算法:罗马数字转换为整数13. Roman to Integer
  15. 核心网upf作用_5G核心网SMF和UPF拓扑增强技术研究
  16. 百度地图聚合找房开发
  17. 深度学习系列(二)显卡驱动升级篇(笔记)
  18. English trip 自习内容 英语时态
  19. 【Mac SSH】SSH连接工具finalShell推荐
  20. 计算机无法u盘启动,用u盘启动不了电脑没反应,教你用u盘启动不了电脑没反应怎么办...

热门文章

  1. Lucene(全文检索)入门
  2. Fundebug:JavaScript插件支持错误采样
  3. 【matlab】eps 意义及用法
  4. DDL语言(DataDefinelanguage 数据库定义语言)
  5. 【Uniapp】手把手教你高德地图的接入、定位、自定义标点与信息窗体使用
  6. Unity_场景烘培技术
  7. caj整篇怎么转换成word,caj转换成word一键搞定
  8. TCTextBox –自制文本框支持透明背景
  9. 新装oracle密码过期,Oracle 11g密码过期问题及解决方案
  10. 设置静态全局变量 oc swift