一、repeat循环
# ---- repeat ----
DELIMITER $$ CREATE PROCEDURE test_repeat() BEGIN
DECLARE a INT DEFAULT 10; REPEAT SET a = a - 1; UNTIL a < 5
END REPEAT; SELECT a; END $$ DELIMITER ; # 调用 CALL test_repeat(); # 删除 DROP PROCEDURE test_repeat;
注意使用repeat的时候,在判断条件(until条件)的那一行句末不加分号,这个很容易出错!
二、loop循环
# ---- loop ----
DELIMITER $$ CREATE PROCEDURE test_loop() BEGIN
DECLARE t INT DEFAULT 0; label:LOOP SET t = t + 1; IF t > 10 THEN LEAVE label; END IF; END LOOP label; SELECT t; END $$ DELIMITER ; # 调用 CALL test_loop(); # 删除 DROP PROCEDURE test_loop;
注意 loop 一般要和一个标签(此处为label,名称可以自定义,不过要保证前后一致)一起使用,且在 loop 循环中一定要有一个判断条件,能够满足在一定的条件下跳出 loop 循环(即 leave )!
END 2018-05-22 13:15:09