MySQL - LEAVE 語句



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

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

MySQL LEAVE 語句

MySQL 中的 LEAVE 語句用於退出 LOOP、REPEAT、WHILE 語句或 BEGIN…END 語句。它不能在這些語句之外使用。

語法

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

LEAVE label

其中,label 是 LOOP、REPEAT 或 WHILE 語句的標籤。

示例 1

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

Delimiter //
CREATE PROCEDURE demo()
   BEGIN
      DECLARE num INT;
      DECLARE str VARCHAR(50);
      SET num = 1;
      SET str = '';
      label: LOOP
      SET num = num + 1;
      IF num > 16 THEN
         LEAVE label;
      END IF;
      IF (num mod 2) THEN
         ITERATE label;
      ELSE 
         SET str = CONCAT(str, num, ',');
      END IF;
   END LOOP;
   SELECT str;
   END //

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

call demo;//

輸出

上述 MySQL 查詢生成以下輸出:

str
2,4,6,8,10,12,14,16,

示例 2

以下查詢演示如何在函式中使用 LEAVE 語句:

DELIMITER //
CREATE FUNCTION Sample (bonus INT)
   RETURNS INT
   BEGIN
      DECLARE income INT;
      SET income = 0;
      myLabel: LOOP
         SET income = income + bonus;
         IF income < 10000 THEN
            ITERATE myLabel;
         END IF;
         LEAVE myLabel;
      END LOOP myLabel;
   RETURN income;
END; //
DELIMITER ;

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

SELECT Sample(1000);

輸出

以下是上述程式的輸出:

Sample(1000)
10000
廣告