2012-04-03 15 views
3

私は、ループ内でselect文を実行するストアドプロシージャに取り組んできました。 mysqliのまたはphpMyAdminを介して結果を表示し、私は1行のみ受信MySQLストアドプロシージャ、複数のSELECTは1つの行のみを返しますか?

。複数の行を返すにはどうすればよいですか?ここで

は私の問題を示して本当に簡単な例....

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

関連する問題