MySQL - ITERATE 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。这些过程包含 IN 和 OUT 参数,或两者兼有。如果您使用 SELECT 语句,它们可能会返回结果集;它们可以返回多个结果集。您还可以在 MYSQL 中创建函数。
与其他编程语言类似,MySQL 支持流控制语句,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在存储程序(过程)中使用这些语句,并在存储函数中使用 RETURN。您可以将一个流控制语句与其他流控制语句一起使用。
MySQL ITERATE 语句
ITERATE 语句用于重新启动 LOOP、REPEAT 或 WHILE 语句。它不能在这些语句之外使用。
语法
以下是 MySQL 中 ITERATE 语句的语法 -
ITERATE label
其中,label 是 LOOP、REPEAT 或 WHILE 语句的标签。
示例 1
以下查询演示了如何在函数中使用 ITERATE 语句 -
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 |
示例 2
以下查询演示了如何在过程中使用 ITERATE 语句 -
delimiter // CREATE procedure proc() BEGIN DECLARE val INT default 15; DECLARE res VARCHAR(255) default ''; label: LOOP IF val < 0 THEN LEAVE label; END IF; SET res = CONCAT(res, val, ','); SET val = val 1; ITERATE label; END LOOP; SELECT res; END//
您可以按照如下所示执行上述所有步骤 -
call proc//
输出
上述查询生成如下所示的输出 -
res |
---|
15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0, |