mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到)

由于mysql 不支持类似 oracle with ...connect的 递归查询语法
之前一直以为类似的查询要么用存储过程要么只能用程序写递归查询.

现在发现原来一条sql语句也是可以搞定的

先来看数据表的结构如下:

id  name    parent_id

--------------------------- 
1   Home        0 
2   About       1 
3   Contact     1 
4   Legal       2 
5   Privacy     4 
6   Products    1 
7   Support     1 
我要的要求是根据一个分类ID(这个分类ID可能是一个子分类),得到所有的父分类,下面是相应的SQL:

SELECT T2.id, T2.name 
FROM ( 
    SELECT 
        @r AS _id, 
        (SELECT @r := parent_id FROM table1 WHERE id = _id) AS parent_id, 
        @l := @l + 1 AS lvl 
    FROM 
        (SELECT @r := 5, @l := 0) vars, 
        table1 h 
    WHERE @r <> 0) T1 
JOIN table1 T2 
ON T1._id = T2.id 
ORDER BY T1.lvl DESC;

转载于:https://www.cnblogs.com/Struggles/p/4923901.html

Mysql递归查询,无限级上下级菜单相关推荐

  1. 仿WINDWS无限级Ajax菜单树升级1.2版(菜单名支持非法字符)

    仿WINDWS无限级Ajax菜单树升级1.2版(菜单名支持非法字符)          1.1版出现了输入非法字符与空格后导致程序出错的BUG,我对程序再次升级为1.2版,这次将支持非法字符式的菜单名 ...

  2. 仿WINDWS无限级Ajax菜单树升级1.3版(修补了严重BUG)

    仿WINDWS无限级Ajax菜单树升级1.3版(修补了严重BUG) WINDWS无限级Ajax菜单树又升级了(1.3版)              对以下BUG进行了修复       1.只能在文字上 ...

  3. ASP+XML+JavaScript实现动态无限级联动菜单

    我做某个项目时,有需求的是做一个动态的无限级的联动菜单.由于本人比较懒于是上网找找有关的代码,但很多都没有满足需求,其中有一编文章是用JavaScript对XML文件操作来实现无限级联动菜单的,我们可 ...

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

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

  5. mysql递归查询解决方案_递归实践问题与解决方案

    mysql递归查询解决方案 Recursion practice problems: Here, you will find the various recursion practice proble ...

  6. MYSQL递归查询,根据子类ID查询所有父类(宇宙第一详细教程)

    前言 工作中业务需求碰到了MYSQL递归这个点,网上资料大都抄来抄去,虽然代码的确能运行.但是萌新是真的看不懂这SQL写的什么玩意啊,看底下评论很多人提问皆是未回复,自己狠下心花了一上午时间,把这个点 ...

  7. MySQL递归查询,Oracle递归查询,MyBatis+MySQL实现递归查询

    递归查询用于查询树形结构的列表,比如行政区列表.包括向下递归查询:根据父级查询子级:向上查询:根据子级查询父级.mysql需要使用存储函数,oracle可以使用connect by语句直接查询. My ...

  8. mysql递归查询方法|mysql递归查询遇到的坑,教你们解决办法

    1.前言 大家在用mysql递归查询的时候,肯定或多或少的会碰到一些问题,像小编就遇到了天大的坑(如下图),于是自己踩了坑,我得想办法把它铺一铺吖,避免大家也同时遇到这样的问题.让技术人能够快速的解决 ...

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

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

最新文章

  1. 你在听音乐的时候能否感受到背后有“寒意“?
  2. Linux命令之乐--expr
  3. Linux sar分析网卡流量
  4. dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
  5. 一个好用的临时文件上传和下载工具 - 奶牛快传
  6. python中的正则表达式是干嘛的_操作python中的正则表达式(上)
  7. 【HAVENT原创】Node Express API 通用配置
  8. 0817JavaScript--------------循环语句
  9. Tomcat配置两个应用服务
  10. 华大移植SEGGER_RTT 打印
  11. Java中使用‘~‘获得数字的相反数
  12. Oracle数据库(定义、特点、体系结构)
  13. android数独游戏数据库分析,基于Android实现数独游戏
  14. python 中sample是什么_python中的sample什么意思
  15. Java语言每日一练—第10天:谁是胖子
  16. OSPF单区域配置实验
  17. 必领空投一:4EVERLAND部署奖励
  18. 基于IjkMediaPlayer的播放器
  19. 如何提高深度学习预测准确率
  20. 开源AI项目-老照片修复之 Bringing Old Photos Back to Life

热门文章

  1. C# DateTime ToString
  2. [react] react中可以在render访问refs吗?为什么?
  3. [react] 解释下react中component和pureComponent两者的区别是什么?
  4. Taro+react开发(39)taro中model使用
  5. Taro+react开发(32)注意符号
  6. react学习(68)--ant design inputNumber
  7. 前端学习(2943):vue结合bs搭建首页
  8. [css] 说说你对jpg、png、gif的理解,分别在什么场景下使用?有使用过webp吗?
  9. [css] 什么是逐帧动画?
  10. 工作214:结构 vue操作一个很有意思的报错 [Vue warn]: You may have an infinite update loop in a component