MySQL - REPEAT 語句



儲存過程是子程式,是儲存在 SQL 目錄中的 SQL 語句段。這些過程包含輸入和輸出引數,或兩者兼有。如果您使用 SELECT 語句,它們可能會返回結果集;它們可以返回多個結果集。您也可以在 MYSQL 中建立函式。

與其他程式語言類似,MySQL 提供了對流程控制語句的支援,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在儲存程式(過程)中使用這些語句,並在儲存函式中使用 RETURN。您可以將一個流程控制語句巢狀在另一個流程控制語句中。

MySQL REPEAT 語句

MySQL 中的 REPEAT 語句用於重複給定的語句集(或語句),直到給定搜尋條件的值為 TRUE。迴圈中的語句以分號(或當前分隔符)結尾。

語法

以下是 REPEAT 語句的語法:

begin_label: REPEAT
   statement_list
UNTIL search_condition
END REPEAT end_label

其中,statement_list 是要重複的單個語句或語句集。begin_label 和 end_label 是 REPEAT 語句的可選標籤,而search_condition 是一個條件,其值為 TRUE 時迴圈將終止。

示例 1

以下查詢演示了使用帶過程的 REPEAT 語句:

DELIMITER //
CREATE PROCEDURE RepeatExample()
BEGIN
   DECLARE val INT;
   DECLARE squares INT;
   DECLARE res VARCHAR(100);
   SET val=1;
   SET squares=1;
   SET res = '';
   REPEAT
      SET squares = val*val;
      SET res = CONCAT(res, squares,',');
      SET val = val + 1;
   UNTIL val >= 10
   END REPEAT;
   SELECT res;
END//

DELIMITER ;

您可以按如下方式呼叫上述過程:

CALL RepeatExample; //

輸出

以下是上述查詢的輸出:

res
1,4,9,16,25,36,49,64,81,

示例 2

以下查詢是另一個 REPEAT 查詢的示例:

DELIMITER //
CREATE PROCEDURE test()
   BEGIN
      DECLARE num INT default 1;
      DECLARE res Varchar(50) default '';
      REPEAT
         SET res = CONCAT(res,num,',');
         SET num = num*5;
      UNTIL num > 78125
      END REPEAT;
      SELECT res;
   END //
DELIMITER ;

您可以按如下所示呼叫上面建立的過程:

call test//

輸出

上述查詢產生以下輸出:

res
1,5,25,125,625,3125,15625,78125,
廣告