Ton*_*ony 27 mysql sql-server common-table-expression adjacency-list
在我的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
Run Code Online (Sandbox Code Playgroud)
如何将该查询"转换"为MySQL?
Jon*_*ack 33
不幸的是MySQL不支持CTE(公用表表达式).这是早就应该的IMO.通常,您可以只使用子查询,但这个特定的CTE是递归的:它在查询中引用自身.递归CTE对于分层数据非常有用,但同样重要:MySql根本不支持它们.您必须实现存储过程才能获得相同的结果.
我之前的答案应该提供一个很好的起点:
| 归档时间: |
|
| 查看次数: |
21821 次 |
| 最近记录: |