电脑
MySQL
Navicat等数据库可视化管理软件
用于重复执行某些语句,直到使用LEAVE语句跳出循环语句结构[loop标注]:LOOP 执行语句END LOOP [loop标注]
调用存储过程CALL testloop(@out1);SELECT @out1;
再次循环,将执行顺序转到语句开头处,只能用于LOOP,REPEAT和WHILE语句内。(类似于其他代码语言的continue)语句结构ITERATE [loop标注]
创建存储过程示例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
调用存储过程CALL testloop2();SELECT @out1;
创建一个带条件判断的循环过程,每次语句执行完毕后,会对条件表达式进行判断,如果表达式为真,则结束循环。语句结构[REPEAT标注]:REPEAT 执行语句UNTIL 条件表达式END REPEAT [REPEAT标注]
创建存储过程示例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
调用存储过程CALL testRepeat(@out1);SELECT @out1;
[WHILE标注]:WHILE 条件表达式 DO 执行语句UNTIL 条件表达式END REPEAT [REPEAT标注]
创建存储过程示例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
调用存储过程CALL testWhile(@out1);SELECT @out1;
注意要设定好循环条件