MySQL LOOP循环语句
时间:2019-11-20 08:52:20 来源:igfitidea点击:
简介:在本教程中,您将学习如何使用MySQL LOOP语句根据条件重复运行代码块。
MySQL LOOP语句简介
LOOP语句使您可以重复执行一个或多个语句。
这是LOOP语句的基本语法:
[begin_label:] LOOP statement_list END LOOP [end_label]
LOOP在块的开头和结尾可以具有可选标签。
LOOP重复执行statement_list。
statement_list可以具有一个或多个语句,每个语句以分号(;)语句定界符终止。
通常,使用LEAVE语句在满足条件时终止循环。
这是与LEAVE语句一起使用的LOOP语句的典型语法:
[label]: LOOP ... -- terminate the loop IF condition THEN LEAVE [label]; END IF; ... END LOOP;
LEAVE语句立即退出循环。
它的工作方式类似于其他编程语言(如PHP,C / C ++和Java)中的break语句。
除了LEAVE语句,您还可以使用ITERATE语句跳过当前循环迭代并开始新的迭代。
ITERATE与PHP,C / C ++和Java中的continue语句相似。
MySQL LOOP语句示例
以下语句创建一个使用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构造一个字符串。
LOOPstatement之前的loop_label与ITERATE和LEAVE语句一起使用。
如果x的值大于10,则由于LEAVE语句而终止循环。
如果x的值是一个奇数,则ITERATE忽略它下面的所有内容并开始新的循环迭代。
如果x的值为偶数,则ELSEstatement中的块将从偶数构建结果字符串。
以下语句调用存储过程:
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语句根据条件重复执行代码块。