我嘗試讓每個類別的所有父類中選擇時:使用變量使用下面的查詢獲取所有的父節點遞歸
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