MySQL存储过程与函数篇,使用循环语句
1、用于重复执行某些语句,直到使用LEAVE语句跳出循环
语句结构
[loop标注]:LOOP
执行语句
END LOOP [loop标注]

2、创建存储过程示例
CREATE PROCEDURE testloop(OUT outvalue INT(11))
BEGIN
DECLARE i int(11);
SET i = 0;
myLoop:LOOP
SET i = i+1;
IF i > 10 THEN
LEAVE myLoop;
END IF;
END LOOP myLoop;
set outvalue = i;
END

3、调用存储过程
CALL testloop(@out1);
SELECT @out1;

1、再次循环,将执行顺序转到语句开头处,只能用于LOOP,REPEAT和WHILE语句内。(类似于其他代码语言的continue)
语句结构
ITERATE [loop标注]

2、创建存储过程示例
CREATE PROCEDURE testloop2(OUT outvalue int(11))
BEGIN
DECLARE i int(11);
SET i = 0;
myLoop:LOOP
SET i = i+1;
IF i < 10 THEN ITERATE myLoop;
ELSEIF i > 20 THEN LEAVE myLoop;
END IF;
SELECT 'i在10到20之间';
END LOOP myLoop;
SET outvalue = i;
END

3、调用存储过程
CALL testloop2();
SELECT @out1;

1、创建一个带条件判断的循环过程,每次语句执行完毕后,会对条件表达式进行判断,如果表达式为真,则结束循环。
语句结构
[REPEAT标注]:REPEAT
执行语句
UNTIL 条件表达式
END REPEAT [REPEAT标注]

2、创建存储过程示例
CREATE PROCEDURE testRepeat(OUT outvalue int(11))
BEGIN
DECLARE i int(11) DEFAULT 0;
myRepeat:REPEAT
set i = i+2;
UNTIL i > 10
END REPEAT myRepeat;
SET outvalue = i;
END

3、调用存储过程
CALL testRepeat(@out1);
SELECT @out1;

1、[WHILE标注]:WHILE 条件表达式 DO
执行语句
UNTIL 条件表达式
END REPEAT [REPEAT标注]

2、创建存储过程示例
CREATE PROCEDURE testWhile(OUT outvalue int(11))
BEGIN
DECLARE i int(11) DEFAULT 10;
myWhile:WHILE i < 10 DO
set i = i+2;
END WHILE myWhile;
SET outvalue = i;
END

3、调用存储过程
CALL testWhile(@out1);
SELECT @out1;
