我尝试让每个类别的所有父类中选择时:使用变量使用下面的查询获取所有的父节点递归
select @c := c.id_category,c.id_parent,
(SELECT
GROUP_CONCAT(@r := (
SELECT c1.id_parent
FROM ps_category c1
WHERE c1.id_category = @r
)) AS parent
FROM (
SELECT @r := @c
) vars,
ps_category c2
where @r<>0) p
from ps_category c
join (select @c:=0) tmp
我希望能得到这样的: id_category_id; id_parent; p 1; 0; 0 2; 1; 1,0 3; 1; 1,0 4; 2; 2,1,0 ...
但似乎什么不使用@r
与@c
初始化,我做错了什么?
虽然此查询可能是正确的答案,这将是一个好多了,如果你解释它做什么,而不是只在您的文章为之倾倒。 – Shadow
@Shadow我已经更新了我的答案,并试图解释相同。 –
使用@c值的内部查询在选择列表中,而不在from子句中。这样@c始终设置为0,这似乎不是OP所需要的。 – Shadow