mysql递归查询子类ID查询所有子类

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


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 ID.level, DATA.* FROM(
    SELECT
        @ids as _ids,
        (   SELECT @ids := GROUP_CONCAT(id)
            FROM table1
            WHERE FIND_IN_SET(parent_id, @ids)
        ) as cids,
        @l := @l+1 as level
    FROM table1,
        (SELECT @ids :='5', @l := 0 ) b
    WHERE @ids IS NOT NULL
) id, table1 DATA
WHERE FIND_IN_SET(DATA.id, ID._ids)
ORDER BY level, id;
复制代码

 

posted @   锐洋智能  阅读(817)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
· Windows 提权-UAC 绕过
点击右上角即可分享
微信分享提示