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

คำสั่ง MySQL WHILE loop สามารถใช้ในขั้นตอนการจัดเก็บได้อย่างไร?


อย่างที่เราทราบดีว่า MySQL ให้คำสั่งแบบวนซ้ำที่ช่วยให้เราสามารถดำเนินการบล็อกของโค้ด SQL ซ้ำๆ ตามเงื่อนไข ในขณะที่ คำสั่งวนซ้ำเป็นหนึ่งในชนิดของคำสั่งวนรอบดังกล่าว ไวยากรณ์ของมันคือ −

WHILE expression DO
statements
END WHILE

ที่จริงแล้ว WHILE loop จะตรวจสอบนิพจน์ที่จุดเริ่มต้นของการวนซ้ำทุกครั้ง หากนิพจน์ประเมินเป็นจริง MySQL จะดำเนินการคำสั่งระหว่าง WHILE และ END WHILE จนกว่านิพจน์จะประเมินเป็นเท็จ WHILE loop ตรวจสอบนิพจน์ก่อนที่คำสั่งจะดำเนินการ นั่นคือสาเหตุที่เรียกอีกอย่างว่า pretest loop

เพื่อสาธิตการใช้ WHILE loop กับขั้นตอนการจัดเก็บ ต่อไปนี้คือตัวอย่าง −

mysql> Delimiter //
mysql> CREATE PROCEDURE While_Loop()
  -> BEGIN
-> DECLARE A INT;
-> DECLARE XYZ Varchar(50);
-> SET A = 1;
-> SET XYZ = '';
-> WHILE A <=10 DO
-> SET XYZ = CONCAT(XYZ,A,',');
-> SET A = A + 1;
-> END WHILE;
-> SELECT XYZ;
-> END //
Query OK, 0 rows affected (0.31 sec)

ตอนนี้ เราสามารถเห็นผลด้านล่างเมื่อเราเรียกใช้ขั้นตอนนี้ -

mysql> DELIMITER ;
mysql> call While_Loop();
+-----------------------+
| XYZ |
+-----------------------+
| 1,2,3,4,5,6,7,8,9,10, |
+-----------------------+
1 row in set (0.03 sec)