MySQL - REPEAT 语句



存储过程是子程序,是存储在 SQL 目录中的 SQL 语句段。这些过程包含输入和输出参数,或两者兼有。如果您使用 SELECT 语句,它们可能会返回结果集;它们可以返回多个结果集。您也可以在 MYSQL 中创建函数。

与其他编程语言类似,MySQL 提供了对流程控制语句的支持,例如 IF、CASE、ITERATE、LEAVE LOOP、WHILE 和 REPEAT。您可以在存储程序(过程)中使用这些语句,并在存储函数中使用 RETURN。您可以将一个流程控制语句嵌套在另一个流程控制语句中。

MySQL REPEAT 语句

MySQL 中的 REPEAT 语句用于重复给定的语句集(或语句),直到给定搜索条件的值为 TRUE。循环中的语句以分号(或当前分隔符)结尾。

语法

以下是 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,
广告
© . All rights reserved.