Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีใช้คำสั่ง MySQL REPEAT Loop ใน Stored Procedure

ตามที่รู้ว่า MySQL จัดเตรียมคำสั่ง loop ให้เรา ซึ่งอนุญาตให้เรารันบล็อกโค้ด SQL ซ้ำๆ ตามเงื่อนไข คำสั่ง REPEAT loop เป็นหนึ่งในลูปแบบนั้น รูปแบบไวยากรณ์มีดังนี้

REPEAT statements; UNTIL expression END REPEAT

ก่อนอื่น MySQL รันคำสั่ง statements แล้วจึงประเมิน expression หาก expression ประเมินเป็น FALSE MySQL จะรันคำสั่ง statements ซ้ำๆ จนกว่า expression จะประเมินเป็น TRUE คำสั่ง REPEAT loop ตรวจสอบ expression หลังจากรัน statements แล้ว นั่นคือเหตุผลที่มันเรียกว่า post-test loop

เพื่อสาธิตการใช้ REPEAT loop กับ stored procedures ต่อไปนี้เป็นตัวอย่าง

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)

ตอนนี้ เราสามารถดูผลลัพธ์ด้านล่างเมื่อเราเรียกใช้ 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)
Query OK, 0 rows affected (0.01 sec)