循环
Last updated
Was this helpful?
Last updated
Was this helpful?
在本教程中,将学习如何使用各种MySQL循环语句(包括WHILE
,REPEAT
和LOOP
)来根据条件反复运行代码块。
MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块。 MySQL中有三个循环语句:WHILE
,REPEAT
和LOOP
。
我们将在以下部分中更详细地检查每个循环语句。
WHILE
语句的语法如下:
WHILE
循环在每次迭代开始时检查表达式。 如果expressionevaluates
为TRUE
,MySQL将执行WHILE
和END WHILE
之间的语句,直到expressionevaluates
为FALSE
。 WHILE
循环称为预先测试条件循环,因为它总是在执行前检查语句的表达式。
下面的流程图说明了WHILE
循环语句:
以下是在存储过程中使用WHILE
循环语句的示例:
在上面的test_mysql_while_loop
存储过程中:
要注意,如果不初始化x
变量的值,那么它默认值为NULL
。 因此,WHILE
循环语句中的条件始终为TRUE
,并且您将有一个不确定的循环,这是不可预料的。
下面来测试test_mysql_while_loopstored
调用存储过程:
执行上面查询语句,得到以下结果 -
REPEAT
循环语句的语法如下:
首先,MySQL执行语句,然后评估求值表达式(expression
)。如果表达式(expression
)的计算结果为FALSE
,则MySQL将重复执行该语句,直到该表达式计算结果为TRUE
。
因为REPEAT
循环语句在执行语句后检查表达式(expression
),因此REPEAT
循环语句也称为测试后循环。
下面的流程图说明了REPEAT
循环语句的执行过程:
我们可以使用REPEAT
循环语句重写test_mysql_while_loop
存储过程,使用WHILE
循环语句:
要注意的是UNTIL
表达式中没有分号(;
)。
执行上面查询语句,得到以下结果 -
有两个语句允许您用于控制循环:
ITERATE
语句允许您跳过剩下的整个代码并开始新的迭代。ITERATE
语句类似于PHP
,C/C++
,Java
等中的continue
语句。
MySQL还有一个LOOP
语句,它可以反复执行一个代码块,另外还有一个使用循环标签的灵活性。
以下是使用LOOP
循环语句的示例。
以上存储过程仅构造具有偶数字符串的字符串,例如2
,4
,6
等。
在LOOP
语句之前放置一个loop_label
循环标签。
如果x
的值大于10
,则由于LEAVE
语句,循环被终止。
如果x
的值是一个奇数,ITERATE
语句忽略它下面的所有内容,并开始一个新的迭代。
如果x
的值是偶数,则ELSE
语句中的块将使用偶数构建字符串。
执行上面查询语句,得到以下结果 -
在本教程中,您学习了基于条件重复执行代码块的各种MySQL循环语句。