
MySQL 为我们提供了一个 LOOP 语句,它可以重复执行代码块,并增加了使用循环标签的灵活性。我们有以下两个语句可以让我们控制循环 -
LEAVE 语句
它允许我们立即退出循环而无需等待检查
迭代语句
它允许我们跳过其下的整个代码并开始新的迭代。
演示使用带有存储过程的LOOP语句,以下是一个存储过程,它构造一个带有偶数的字符串,如2、4、6、8等。 -
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
mysql> Delimiter //
mysql> CREATE PROCEDURE LOOP_loop()
-> BEGIN
-> DECLARE A INT;
-> DECLARE XYZ VARCHAR(255);
-> SET A = 1;
-> SET XYZ = '';
-> loop_label: LOOP
-> IF A > 10 THEN
-> LEAVE loop_label;
-> END IF;
-> SET A = A + 1;
-> IF (A mod 2) THEN
-> ITERATE loop_label;
-> ELSE
-> SET XYZ = CONCAT(XYZ,A,',');
-> END IF;
-> END LOOP;
-> SELECT XYZ;
-> END //
Query OK, 0 rows affected (0.07 sec)现在,当我们调用这个过程时,我们可以看到下面的结果 -
mysql> DELIMITER ; mysql> CALL LOOP_loop (); +-------------+ | XYZ | +-------------+ | 2,4,6,8,10, | +-------------+ 1 row in set (0.04 sec) Query OK, 0 rows affected (0.04 sec)
在上面的查询中,如果 A 的值大于 10,则循环由于 LEAVE 语句而终止。如果 A 的值为奇数,则 ITERATE 语句将忽略其下方的所有内容并开始新的迭代。如果 A 的值为偶数,则 ELSE 语句中的块将使用偶数构建字符串。









