将 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中文网其他相关文章!