在MySQL存储过程的语句中有三个标准的循环方式:while循环,loop循环以及repeat循环。还有一种非标准的循环方式:goto(不做讲解)
- while 循环
-- 语法 --
while(表达式) do
......
end while;
-- 示例 --
drop procedure if exists `test6`;
delimiter $$
create procedure test6()
begin
declare i int default 1;
while(i<10) do
begin
select i;
set i=i+1;
end;
end while;
end $$
call test6();
- loop :类似for循环
-- 语法 --
loop名称: loop
...
leave loop名称; -- 内部中断
end loop;
-- 示例 --
drop procedure if exists `test7`;
delimiter $$
create procedure test7()
begin
declare i int default 1;
loop_test: loop
select i ;
set i=i+1;
if i>=10 then
leave loop_test; -- 内部中断
end if;
end loop;
end $$
call test7();
- repeat : 相当于do while
-- 语法 --
repeat
... //需要执行语句
until
... //跳出循环的条件
end repeat;
-- 示例 --
drop procedure if exists `test8`;
delimiter $$
create procedure test8()
begin
declare i int default 1;
repeat
select i;
set i = i + 1;
until i >= 10 end repeat;
end $$
call test8();