在我的MySQL模式中,我有一个category(id, parentid, 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?
发布于 2012-01-12 18:40:40
不幸的是,MySQL不支持常用表表达式。这是早就应该有的国际海事组织。通常,您可以只使用子查询,但是这个特定的CTE是递归的:它在查询中引用自身。递归CTE对于分层数据非常有用,但同样: MySql根本不支持它们。您必须实现一个存储过程才能获得相同的结果。
我之前的回答应该是一个很好的起点:
Generating Depth based tree from Hierarchical Data in MySQL (no CTEs)
发布于 2017-08-05 00:59:54
谢天谢地,这不再是必要的,因为MySQL是从8.0.1 supports CTE开始的。
发布于 2018-07-11 11:31:02
不幸的是,MYSQl或XAMPP(MARIADB) mysql不支持CTE(公用表表达式),同样,您将不得不使用嵌套查询。
有关详细信息,请单击以下链接:-
https://stackoverflow.com/questions/8833535
复制相似问题