MySQL 为我们提供了一个 LOOP 语句,它可以重复执行代码块,并增加了使用循环标签的灵活性。我们有以下两个语句可以让我们控制循环 -
它允许我们立即退出循环而无需等待检查
它允许我们跳过其下的整个代码并开始新的迭代。
演示使用带有存储过程的LOOP语句,以下是一个存储过程,它构造一个带有偶数的字符串,如2、4、6、8等。 -
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 语句中的块将使用偶数构建字符串。
以上是MySQL LOOP语句如何在存储过程中使用?的详细内容。更多信息请关注PHP中文网其他相关文章!