MySQL LOOP 循环语句
在本教程中,您将学习如何使用 MySQL LOOP 语句根据条件重复运行一段代码。
总结:在本教程中,您将学习如何使用 MySQL LOOP 语句根据条件重复运行一段代码。
MySQL LOOP 语句介绍
该 LOOP 语句允许您重复执行一个或多个语句。
以下是该 LOOP 语句的基本语法:
[begin_label:] LOOP
statement_list
END LOOP [end_label]
将 LOOP 可以在开始选购标签和块的结束。
在 LOOP 执行 statement_list 多次。所述 statement_list 可具有一个或多个语句,每一个由分号(;)结束语句分隔符。
通常,使用 LEAVE 语句在满足条件时终止循环。
这是与 LOOP statement 一起使用的语句的典型语法 LEAVE :
[label]: LOOP
...
-- terminate the loop
IF condition THEN
LEAVE [label];
END IF;
...
END LOOP;
该 LEAVE 语句立即退出循环。它的工作方式类似于 break PHP、C/C++ 和 Java 等其他编程语言中的语句。
除了 LEAVE 语句之外,您还可以使用 ITERATE 语句跳过当前循环迭代并开始新的迭代。在 ITERATE 类似于 continue 在PHP,C / C ++和Java语句。
MySQL LOOP 语句实例
DROP PROCEDURE LoopDemo;
DELIMITER $$
CREATE PROCEDURE LoopDemo()
BEGIN
DECLARE x INT;
DECLARE str VARCHAR(255);
SET x = 1;
SET str = '';
loop_label: LOOP
IF x > 10 THEN
LEAVE loop_label;
END IF;
SET x = x + 1;
IF (x mod 2) THEN
ITERATE loop_label;
ELSE
SET str = CONCAT(str,x,',');
END IF;
END LOOP;
SELECT str;
END$$
DELIMITER ;
在这个例子中:
- 存储过程从偶数构造一个字符串,例如 2、4 和 6。
- 在
loop_label之前LOOP与using语句ITERATE和LEAVE语句。 - 如果 的值
x大于10,则循环因LEAVE语句而终止。 - 如果 的值为
x奇数,则ITERATE忽略其下方的所有内容并开始新的循环迭代。 - 如果 的值为
x偶数,则ELSE语句中的块将从偶数构建结果字符串。
以下语句调用存储过程:
CALL LoopDemo();
这是输出:
+-------------+
| str |
+-------------+
| 2,4,6,8,10, |
+-------------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.02 sec)
在本教程中,您学习了如何使用 MySQL LOOP 语句根据条件重复执行代码块。