好吧,這可能是超級簡單,但我似乎無法找到答案。 我目前正在嘗試清理一些存儲過程,這些存儲過程使用一堆只有數量增加的變量的select語句,例如。 id1,id2,id3,id4,id5,id6,id7和id8。我不想連續調用24條語句,而是想將存儲過程減少到幾行。MYSQL存儲過程變量while循環
現在請原諒,如果語法是關閉的,而不是貿易的MySQL程序員。
在我的正常語言,我會做一個while循環與變量和控制附加如。
while x <= count do
select * from table where col = id[x];
SET x = x + 1;
end;
將控件附加到變量末尾的正確方法是什麼?這在存儲過程中是可能的嗎?選擇語句比所示的要多一點,但如果我可以做一個簡單的語句,它可以用於語句的其餘部分。
當前使用的代碼,這只是代碼的一部分。我只是發佈一個與3不同的選擇語句。目前使用3種不同的基本select into語句。如果我能以某種方式將所有3合併成1個語句,那將是驚人的,但是我對MySQL更新,也許給了更多時間? if (licount <=2) then /* 2 Stations */ select gen_idx into gen_idx1 from j_final_results where line=pline and station=1 and type_result=1 order by ID desc limit 1; select gen_idx into gen_idx2 from j_final_results where line=pline and station=2 and type_result=1 order by ID desc limit 1; set gen_idx3=0; set gen_idx4=0; set gen_idx5=0; set gen_idx6=0; set gen_idx7=0; set gen_idx8=0; select scan_lbl into serial1 from j_final_results where line=pline and station=1 and type_result=1 order by ID desc limit 1; select scan_lbl into serial2 from j_final_results where line=pline and station=2 and type_result=1 order by ID desc limit 1; set serial3=''; set serial4=''; set serial5=''; set serial6=''; set serial7=''; set serial8=''; select type_result into type1 from j_final_results where line=pline and station=1 order by ID desc limit 1; select type_result into type2 from j_final_results where line=pline and station=2 order by ID desc limit 1; set type3=0; set type4=0; set type5=0; set type6=0; set type7=0; set type8=0;
您可以在過程中做類似的事情,最新的問題是什麼? – Mihai
我只是想ot找出做id [x]的正確方法?如果那是真的。 – Ralre
如果你可以發佈你的長SP,這將有所幫助。 – Pentium10