MySQL LOOP语句在存储过程中如何使用?

MySQL LOOP语句在存储过程中如何使用?

MySQL提供了一个 LOOP 语句,它可以执行一段代码并重复地使用一个循环标签。我们有以下两个语句来控制循环−

阅读更多:MySQL 教程

LEAVE语句

它允许我们立即退出循环而不等待检查条件。

Iterate语句

它允许我们跳过其下面的整个代码并开始新的迭代。

为了演示使用存储过程的 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行受影响(0.07秒)

现在,当我们调用此存储过程时,可以看到以下结果−

mysql> DELIMITER ;
mysql> CALL LOOP_loop ();
+-------------+
| XYZ         |
+-------------+
| 2,4,6,8,10, |
+-------------+
1行记录(0.04秒)
Query OK,0行受影响(0.04秒)

在上面的查询中,如果A的值大于10,则循环终止,因为出现了LEAVE语句。如果A的值是奇数,则ITERATE语句忽略其下面的所有内容并开始新的迭代。如果A的值是偶数,则ELSE语句中的块将使用偶数构建字符串。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程