• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql8.0递归查询的简单用法示例

    前言

    本文使用Mysql8.0的特新实现递归查询,文中给出了详细的实例代码,下面话不多说了,来一起看看详细的介绍吧

    Mysql8.0递归查询用法

    表数据如下

    +--------+----------+------------+
    | cat_id | name     | parent_cid |
    +--------+----------+------------+
    |     12 | 美妆     |          0 |
    |      4 | 服装     |          0 |
    |      5 | 女装     |          4 |
    |      6 | 男装     |          4 |
    |      7 | 童装     |          4 |
    |     19 | 美容美体 |         12 |
    |     18 | 彩妆     |         12 |
    |     13 | 护肤     |         12 |
    |     15 | 护肤套装 |         13 |
    |     40 | 防晒     |         13 |
    |     39 | 卸妆     |         13 |
    |     38 | 润唇膏   |         13 |
    |     17 | 乳液面霜 |         13 |
    |     16 | 面膜     |         13 |
    |     14 | 化妆水   |         13 |
    +--------+----------+------------+

    1. 我们需要查询出"服装"分类下的所有子分类

    with recursive type_cte as (
        select *  from t_category  where cat_id = 4
        union all
        select t.* from t_category t
                            inner join type_cte type_cte2 on t.parent_cid = type_cte2.cat_id
    )
    select
        cat_id, name, parent_cid
    from type_cte
    

    +--------+------+------------+
    | cat_id | name | parent_cid |
    +--------+------+------------+
    |      4 | 服装 |          0 |
    |      5 | 女装 |          4 |
    |      6 | 男装 |          4 |
    |      7 | 童装 |          4 |
    +--------+------+------------+

    2. 查询出所有“美妆”分类下的所有子分类,并且分类名称带上上级分类的名称

    with recursive type_cte as (
        select cat_id,name,parent_cid  from t_category  where cat_id = 12
        union all
        select t.cat_id,concat(type_cte2.name,'>',t.name),t.parent_cid 
        from t_category t
            inner join type_cte type_cte2 on t.parent_cid = type_cte2.cat_id
    )
    select
        cat_id, name, parent_cid
    from type_cte;
    

    +--------+------------------------+------------+
    | cat_id | name                   | parent_cid |
    +--------+------------------------+------------+
    |     12 | 美妆                   |          0 |
    |     13 | 美妆>护肤              |         12 |
    |     18 | 美妆>彩妆              |         12 |
    |     19 | 美妆>美容美体          |         12 |
    |     14 | 美妆>护肤>化妆水       |         13 |
    |     15 | 美妆>护肤>护肤套装     |         13 |
    |     16 | 美妆>护肤>面膜         |         13 |
    |     17 | 美妆>护肤>乳液面霜     |         13 |
    |     35 | 美妆>护肤>洁面         |         13 |
    |     36 | 美妆>护肤>精华         |         13 |
    |     37 | 美妆>护肤>眼霜         |         13 |
    |     38 | 美妆>护肤>润唇膏       |         13 |
    |     39 | 美妆>护肤>卸妆         |         13 |
    |     40 | 美妆>护肤>防晒         |         13 |
    +--------+------------------------+------------+

    3. 查询分类的所有父级分类

    根据第二个问题的sql做一下调整即可

    with recursive type_cte as (
        select cat_id,name,parent_cid  from t_category  where cat_id = 40
        union all
        select t.cat_id,concat(type_cte2.name,'>',t.name),t.parent_cid
        from t_category t
                 inner join type_cte type_cte2 on t.cat_id = type_cte2.parent_cid
    )
    select
        cat_id, name, parent_cid
    from type_cte;
    

    +--------+----------------+------------+
    | cat_id | name           | parent_cid |
    +--------+----------------+------------+
    |     40 | 防晒           |         13 |
    |     13 | 防晒>护肤      |         12 |
    |     12 | 防晒>护肤>美妆 |          0 |
    +--------+----------------+------------+

    总结

    到此这篇关于Mysql8.0递归查询的文章就介绍到这了,更多相关Mysql8.0递归查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • MySQL递归查询树状表的子节点、父节点具体实现
    • Mysql树形递归查询的实现方法
    • SQL如何实现MYSQL的递归查询
    • MySQL通过自定义函数实现递归查询父级ID或者子级ID
    • MySql8 WITH RECURSIVE递归查询父子集的方法
    上一篇:SQL之各种join小结详细讲解
    下一篇:SQL实现LeetCode(176.第二高薪水)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mysql8.0递归查询的简单用法示例 Mysql8.0,递归,查询,的,简单,