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
广告
© . All rights reserved.