REPEAT loop chạy block SQL lặp lại dựa trên điều kiện. Cú pháp:
REPEAT statements; UNTIL expression END REPEAT
Thực thi statements trước, rồi kiểm tra expression. Nếu FALSE, lặp lại cho đến khi TRUE. Đây là post-test loop (kiểm tra sau).
Ví dụ procedure Repeat_Loop:
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 //
Query OK, 0 rows affected (0.04 sec)
Gọi procedure:
mysql> DELIMITER ; mysql> CALL Repeat_Loop(); +-----------------------+ | XYZ | +-----------------------+ | 1,2,3,4,5,6,7,8,9,10, | +-----------------------+ 1 row in set (0.00 sec)