อย่างที่เราทราบดีว่า MySQL มีคำสั่งวนรอบที่ช่วยให้เราสามารถดำเนินการบล็อกของโค้ด SQL ซ้ำๆ ตามเงื่อนไข ทำซ้ำ คำสั่งวนซ้ำเป็นคำสั่งวนซ้ำประเภทหนึ่ง ไวยากรณ์ของมันคือ −
REPEAT statements; UNTIL expression END REPEAT
ก่อนอื่น MySQL รันคำสั่ง จากนั้นจึงประเมินนิพจน์ หากนิพจน์ประเมินเป็น FALSE MySQL จะดำเนินการคำสั่งซ้ำๆ จนกว่านิพจน์จะประเมินเป็น TRUE ทำซ้ำ ลูปตรวจสอบนิพจน์หลังจากรันคำสั่ง นั่นคือสาเหตุที่เรียกอีกอย่างว่าลูปหลังการทดสอบ
เพื่อสาธิตการใช้ 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 // Query OK, 0 rows affected (0.04 sec)
ตอนนี้ เราจะเห็นผลลัพธ์ด้านล่างเมื่อเราเรียกใช้ขั้นตอนนี้ -
mysql> DELIMITER ; mysql> CALL Repeat_Loop(); +-----------------------+ | XYZ | +-----------------------+ | 1,2,3,4,5,6,7,8,9,10, | +-----------------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)