MySQL - REPEAT 语句
存储过程是存储在 SQL 目录中的子例程,是 SQL 语句的片段。这些过程包含 IN 和 OUT 参数,或两者兼有。如果您使用 SELECT 语句,它们可能会返回结果集;它们可以返回多个结果集。您还可以在 MYSQL 中创建函数。
与其他编程语言类似,MySQL 支持流控制语句,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在存储程序(过程)中使用这些语句,并在存储函数中使用 RETURN。您可以将一个流控制语句与其他流控制语句一起使用。
MySQL REPEAT 语句
MySQL 中的 REPEAT 语句用于重复给定的语句集(或语句),直到给定搜索条件的值为 TRUE。 LOOP 中的语句以分号(或当前分隔符)结尾。
语法
以下是 REPEAT 语句的语法 -
begin_label: REPEAT statement_list UNTIL search_condition END REPEAT end_label
其中,statement_list 是要重复的单个或一组语句。begin_label 和 end_label 是 REPEAT 语句的可选标签,search_condition 是循环终止条件,其值为 TRUE 时循环才会终止。
示例 1
以下查询演示了如何在过程中使用 REPEAT 语句 -
DELIMITER //
CREATE PROCEDURE RepeatExample()
BEGIN
DECLARE val INT;
DECLARE squares INT;
DECLARE res VARCHAR(100);
SET val=1;
SET squares=1;
SET res = '';
REPEAT
SET squares = val*val;
SET res = CONCAT(res, squares,',');
SET val = val + 1;
UNTIL val >= 10
END REPEAT;
SELECT res;
END//
DELIMITER ;
您可以按如下方式调用上述过程 -
CALL RepeatExample; //
输出
以下是上述查询的输出 -
| res |
|---|
| 1,4,9,16,25,36,49,64,81, |
示例 2
以下查询是 REPEAT 查询的另一个示例 -
DELIMITER //
CREATE PROCEDURE test()
BEGIN
DECLARE num INT default 1;
DECLARE res Varchar(50) default '';
REPEAT
SET res = CONCAT(res,num,',');
SET num = num*5;
UNTIL num > 78125
END REPEAT;
SELECT res;
END //
DELIMITER ;
您可以像下面这样调用上面创建的过程 -
call test//
输出
上述查询产生以下输出 -
| res |
|---|
| 1,5,25,125,625,3125,15625,78125, |

