我在MySQL中有一个分层表:parent每个项的id字段指向其父项的字段.对于每个项目,我可以使用此处描述的查询获取所有父项的列表[无论深度] .随着GROUP_CONCAT我得到的完整路径作为一个字符串:
SELECT GROUP_CONCAT(_id SEPARATOR ' > ') FROM (
SELECT @r AS _id,
(
SELECT @r := parent
FROM t_hierarchy
WHERE id = _id
) AS parent,
@l := @l + 1 AS lvl
FROM (
SELECT @r := 200,
@l := 0
) vars,
t_hierarchy h
WHERE @r <> 0
ORDER BY lvl DESC
) x
Run Code Online (Sandbox Code Playgroud)
只有当id项目的内容得到修复时,我才能完成这项工作[ 200在这种情况下].
我想对所有行执行相同操作:使用一个额外的字段(path)检索整个表,该字段将显示完整路径.我想到的唯一解决方案是将此查询包装在另一个select中,设置一个临时变量@id并在子查询中使用它.但它不起作用.我进入NULL了 …