MYSQL: loop if
ITERATE: 跳出此次循环,直接进入到下一次循环中
LEAVE: 结束循环,跳出整个循环。
demo如下:
CREATE TABLE t(
v INT NOT NULL
)ENGINE=INNODB DEFAULT charset=utf8 COMMENT='测试数据表';
#创建存储过程
CREATE PROCEDURE P20()
BEGIN
DECLARE v INT;
SET v=0;
loop_label: LOOP
IF v=3 THEN
SET v=v+1;
ITERATE loop_label; #跳过此处循环,进入下一次循环 或再次执行loop,等同于goto loop_label 或相当于其他语言的continue
END IF;
INSERT INTO t VALUES(v);
SET v = v+1;
IF v>=5 THEN
LEAVE loop_label; #结束循环,跳出整个循环,相当于其他语言的break;
END IF;
END LOOP;
END;//
CALL P20(); #调用存储过程
SELECT * FROM t;
输出结果为: