MySQL REPEAT Loop

摘要:在本教程中,您将学习如何使用 MySQL REPEAT语句执行一个或多个语句,直到搜索条件成立。

REPEAT语句执行一个或多个语句,直到搜索条件为真。

以下是REPEAT循环语句的基本语法:

[begin_label:] REPEAT
    statement
UNTIL search_condition
END REPEAT [end_label]
Code language: SQL (Structured Query Language) (sql)

REPEAT执行statement直到search_condition计算结果为 true。

REPEAT在执行statement后检查search_condition ,因此, statement总是至少执行一次。这就是为什么REPEAT也被称为测试后循环。

REPEAT语句的开头和结尾可以有标签。这些标签是可选的。

以下流程图说明了REPEAT循环:

MySQL REPEAT 循环

MySQL REPEAT循环示例

此语句创建一个名为RepeatDemo存储过程,它使用REPEAT语句连接从 1 到 9 的数字:

DELIMITER $$

CREATE PROCEDURE RepeatDemo()
BEGIN
    DECLARE counter INT DEFAULT 1;
    DECLARE result VARCHAR(100) DEFAULT '';
    
    REPEAT
        SET result = CONCAT(result,counter,',');
        SET counter = counter + 1;
    UNTIL counter >= 10
    END REPEAT;
    
    -- display result
    SELECT result;
END$$

DELIMITER ;
Code language: SQL (Structured Query Language) (sql)

在此存储过程中:

首先,声明两个变量counterresult ,并将它们的初始值设置为1和空白。

counter变量用于在循环中从 1 计数到 9。 result变量用于存储每次循环迭代后连接的字符串。

其次,使用CONCAT()函数将counter值附加到result变量,直到counter大于或等于 10。

以下语句调用RepeatDemo()存储过程:

CALL RepeatDemo();
Code language: SQL (Structured Query Language) (sql)

这是输出:

+--------------------+
| result             |
+--------------------+
| 1,2,3,4,5,6,7,8,9, |
+--------------------+
1 row in set (0.02 sec)

Query OK, 0 rows affected (0.02 sec)
Code language: SQL (Structured Query Language) (sql)

在本教程中,您将学习如何使用 MySQL REPEAT语句执行一个或多个语句,直到搜索条件成立。

本教程有帮助吗?