2012-04-03 70 views
3

我一直在研究循環中運行select語句的存儲過程。MySQL存儲過程,多個SELECT只返回一行?

當通過mysqli或phpmyadmin查看結果時,我只收到一行。我需要做什麼來返回多行?

這裏是一個非常簡單的例子,說明我的問題....

DROP PROCEDURE IF EXISTS simple // 
CREATE PROCEDURE simple() 
BEGIN 

DECLARE c INT(10); 
SET c = 1; 

REPEAT 

    SELECT c; 
    SET c = c + 1; 

UNTIL c >= 10 END REPEAT; 

END // 

回答

1

我認爲處理這個最好的辦法實際上是你的輸出存儲到一個臨時表,然後做最後的選擇在while循環結束時。

DROP PROCEDURE IF EXISTS simple // 
CREATE PROCEDURE simple() 
BEGIN 

    CREATE TEMPORARY TABLE output (finalC INT(10)); 

    DECLARE c INT(10); 
    SET c = 1; 

    REPEAT 

     INSERT INTO output SELECT c; 
     SET c = c + 1; 

    UNTIL c >= 10 END REPEAT; 

    SELECT * FROM output; 

END // 
+0

感謝您的幫助! – christian 2012-04-03 03:14:34