众所周知,MySQL提供了循环语句,使我们可以根据条件重复执行SQL代码块。一个REPEAT 循环语句正是这样一种循环语句之一。它的语法如下-
REPEAT statements; UNTIL expression END REPEAT
首先,MySQL执行语句,然后对表达式求值。如果表达式的计算结果为FALSE,则MySQL重复执行语句,直到表达式的计算结果为TRUE。该REPEAT 循环检查报表后表达执行,这就是为什么它也被称为后测试循环。
为了演示在存储过程中使用REPEAT 循环,以下是一个示例-
mysql> Delimiter // mysql> CREATE PROCEDURE Repeat_Loop() -> BEGIN -> DECLARE A INT; -> DECLARE XYZ Varchar(50); -> SET A = 1; -> SET XYZ = ''; -> REPEAT -> SET XYZ = CONCAT(XYZ,A,','); -> SET A = A + 1; -> UNTIL A > 10 -> END REPEAT; -> SELECT XYZ; -> END //
现在,当我们调用此过程时,我们可以看到以下结果:
mysql> DELIMITER ; mysql> CALL Repeat_Loop(); +-----------------------+ | XYZ | +-----------------------+ | 1,2,3,4,5,6,7,8,9,10, | +-----------------------+ 1 row in set (0.00 sec)