MySQL - LEAVE 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。这些过程包含 IN 和 OUT 参数,或两者兼有。如果您使用 SELECT 语句,它们可能会返回结果集;它们可以返回多个结果集。您还可以在 MYSQL 中创建函数。
与其他编程语言类似,MySQL 支持流控制语句,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在存储程序(过程)中使用这些语句,并在存储函数中使用 RETURN 语句。您可以将一个流控制语句与其他流控制语句一起使用。
MySQL LEAVE 语句
MySQL 中的 LEAVE 语句用于退出 LOOP、REPEAT、WHILE 语句或 BEGINEND 语句。它不能在这些语句之外使用。
语法
以下是 MySQL 中 LEAVE 语句的语法 -
LEAVE 标签
其中,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 |

