首页 > 数据库 > mysql教程 > 如何复制递归 MSSQL CTE 查询以在 MySQL 中构建类别树?

如何复制递归 MSSQL CTE 查询以在 MySQL 中构建类别树?

Mary-Kate Olsen
发布: 2024-12-01 08:54:13
原创
715 人浏览过

How Can I Replicate a Recursive MSSQL CTE Query for Building a Category Tree in MySQL?

将 MSSQL CTE 查询转换为 MySQL

在具有 'category' 表(包含 id、parent id 和 列)的 MySQL 模式中name,您希望复制一个 MSSQL CTE 查询,该查询为指定的类别 ID 自下而上构建类别树。该查询如下:

with CTE (id, pid, name)
as
(
    select id, parentid as pid,name
    from category
    where id = 197
      union all
        select CTE.pid as id , category.parentid as pid, category.name
        from CTE
          inner join category
            on category.id = CTE.pid
 )
 select * from CTE 
登录后复制

不幸的是,MySQL 缺乏对 CTE 的支持。因此,使用子查询代替它们可能不是一种选择,因为所讨论的 CTE 是递归的,在查询中引用自身。 MySQL 不支持递归 CTE。

要实现类似的功能,必须实现存储过程。之前关于如何“从 MySQL 中的分层数据生成基于深度的树(无 CTE)”的答案可以作为构建此类过程的起点。

以上是如何复制递归 MSSQL CTE 查询以在 MySQL 中构建类别树?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板