簡體   English   中英

MySQL 存儲過程,多個 SELECT 只返回一行?

[英]MySQL Stored Procedure, Multiple SELECTs only return one row?

我一直在研究一個在循環中運行 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 //

我認為處理這個問題的最好方法實際上是將您的輸出存儲到一個臨時表中,然后在 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 //

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM