Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng câu lệnh LOOP trong MySQL stored procedure

MySQL cung cấp câu lệnh LOOP thực thi khối code lặp lại với nhãn (label) để điều khiển. Hai câu lệnh điều khiển:

LEAVE statement

Thoát khỏi vòng lặp ngay lập tức, không chờ kiểm tra điều kiện.

ITERATE statement

Bỏ qua code phía dưới và bắt đầu vòng lặp mới.

Ví dụ thủ tục xây dựng chuỗi số chẵn 2,4,6,8,10:

mysql> DELIMITER //
mysql> CREATE PROCEDURE LOOP_loop()
    -> BEGIN
    -> DECLARE A INT;
    -> DECLARE XYZ VARCHAR(255);
    -> SET A = 1;
    -> SET XYZ = '';
    -> loop_label: LOOP
    -> IF A > 10 THEN
    -> LEAVE loop_label;
    -> END IF;
    -> SET A = A + 1;
    -> IF (A MOD 2) THEN
    -> ITERATE loop_label;
    -> ELSE
    -> SET XYZ = CONCAT(XYZ,A,',');
    -> END IF;
    -> END LOOP;
    -> SELECT XYZ;
    -> END //
Query OK, 0 rows affected (0.07 sec)

Kết quả khi gọi:

mysql> DELIMITER ;
mysql> CALL LOOP_loop();
+-------------+
| XYZ         |
+-------------+
| 2,4,6,8,10, |
+-------------+
1 row in set (0.04 sec)

Giải thích: LEAVE thoát khi A>10; ITERATE bỏ qua số lẻ; khối ELSE nối số chẵn vào chuỗi.