MySQL - WHILE 語句



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

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

MySQL WHILE 語句

WHILE 是一個複合 MySQL 語句,用於重複執行單個語句或語句集,直到指定的條件為 TRUE。

語法

以下是 MySQL 中 WHILE 語句的語法:

begin_label: WHILE search_condition DO
statement_list
END WHILE end_label

其中,statement_list 是要重複執行的單個語句或語句集。begin_label **和** end_label 是 WHILE 語句的可選標籤。WHILE 中的每個語句以分號結尾(或當前分隔符)。

示例 1

以下查詢演示瞭如何在過程中使用 WHILE 語句:

DELIMITER //
CREATE PROCEDURE while_loop()
   BEGIN
      DECLARE num INT default 1;
      DECLARE res Varchar(50) default '';
      WHILE num < 78125 DO
         SET res = CONCAT(res,num,',');
         SET num = num*5;
      END While;
      SELECT res;
   END //
DELIMITER ;

您可以按如下所示呼叫上述過程:

call while_loop;

輸出

上述 mysql 查詢產生以下輸出:

res
1,5,25,125,625,3125,15625,

示例 2

以下查詢是 WHILE 語句的另一個示例:

Delimiter //
CREATE PROCEDURE While_Loop()
   BEGIN
   DECLARE num INT default 1;
   DECLARE res Varchar(50) default '';
   SET num = 1;
   SET res = '';
   WHILE num <=10 DO
   SET res = CONCAT(res, num, ',');
   SET num = num + 1;
   END WHILE;
   SELECT res;
END //

您可以按如下所示呼叫上述過程:

call While_Loop//

輸出

以下是上述程式的輸出:

res
1,2,3,4,5,6,7,8,9,10,
廣告