語句功能
| 語句 | 作用 | 對應結構 |
ITERATE label | 跳過本次循環剩余代碼,直接進入下一次迭代 | 類似 continue |
LEAVE label | 跳出整個標籤標識的循環/塊 | 類似 break |
使用規則
- 必須配合 標籤 使用:
label_name: LOOP ... END LOOP label_name;
- 標籤名區分大小寫,建議全大寫。
示例:計算 1 到 10 奇數和
CREATE PROCEDURE sum_odd()
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE sum INT DEFAULT 0;
MAIN_LOOP: LOOP
SET i = i + 1;
IF i > 10 THEN
LEAVE MAIN_LOOP; -- 跳出循環
END IF;
IF i % 2 = 0 THEN
ITERATE MAIN_LOOP; -- 跳過偶數,直接下一輪
END IF;
SET sum = sum + i;
END LOOP MAIN_LOOP;
SELECT sum; -- 25
END;
參考資源
MySQL LOOP/LEAVE/ITERATE 官方文檔與示例