我是新來的存儲過程,我試圖實施該解決方案的問題@Hierarchical Query in MySQL II。我在下面發佈了我的代碼。我立即掛斷了第三行。它看起來像我的問題回答@Error declaring integer variable inside MySQL stored function,但我仍然無法得到它的工作。錯誤回覆:在MySQL聲明整數存儲過程
對於我的第一個實驗,我想通過指定1(動物王國)作爲整數查詢整個分類樹。
我一直在尋找一些存儲過程的教程,但它究竟是如何運作目前尚不清楚,我,我可能有本末倒置。據我瞭解,存儲過程可以通過MySQL或PHP進行查詢,我寧願在PHP中執行。我不明白如果下面的代碼是一個存儲過程查詢或我可以編寫查詢之前必須做的事情。我創建了練習表(t)。
所以,也許我應該問另一種方式:如果我已經有一個練習表與家長ID字段,我想學習如何用PHP查詢該表,我仍然需要混亂代碼如下,以創建一個「存儲過程」?或者我可以使用用PHP編寫的查詢創建存儲過程?
DELIMITER $$
create procedure showHierarchyUnder
(
SET i = 1;
)
BEGIN
declare bDoneYet boolean default false;
declare working_on int;
declare next_level int;
declare theCount int;
CREATE temporary TABLE xxFindChildenxx
( N int not null,
processed int not null,
level int not null,
parent int not null
);
set bDoneYet=false;
insert into xxFindChildenxx (N,processed,level,parent) select theId,0,0,0;
while (!bDoneYet) do
select count(*) into theCount from xxFindChildenxx where processed=0;
if (theCount=0) then
set bDoneYet=true;
else
SELECT N,level+1 INTO working_on,next_level FROM xxFindChildenxx where processed=0 limit 1;
insert into xxFindChildenxx (N,processed,level,parent)
select N,0,next_level,parent
from t
where parent=working_on;
update xxFindChildenxx set processed=1 where N=working_on;
end if;
end while;
delete from xxFindChildenxx where N=theId;
select level,count(*) as lvlCount from xxFindChildenxx group by level;
drop table xxFindChildenxx;
END
??
是的,這是我得到的錯誤信息。 –
只是出於好奇,你自己寫這個嗎? – BK435
沒有,我是從http://stackoverflow.com/questions/33248361/hierarchical-query-in-mysql-ii我不得不刪除它的工作之前,然後,我就掛了整數的所有評論。順便說一下,我使用的是phpMyAdmin。 –