今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL存储过程的循环流程控制语句。
阅读本文,您需要有一定的MySQL存储过程基础,如果您对此还存在困惑,欢迎查阅以下文章:
MySQL存储过程(一)——存储过程理论基础MySQL存储过程(二)——存储过程基本使用
MySQL存储过程(三)——存储过程分支流控语句
MySQL存储过程一共支持三种形式的循环流程控制语句,分别是while循环、repeat循环和loop循环。下面,我将对这三种形式的循环进行详细介绍。

一、while循环详解

while循环语法结构如下:

while 【循环条件】 do
【循环体】
end while;

while循环SQL语句示例如下:

create procedure get_sum()
begin
declare sum int;
declare i int;
set sum=0;
set i=1;
while i<=100 do 
set sum=sum+i;
set i=i+1;
end while;
select sum;
end //

上述语句执行结果如下:

mysql自定义函数循环 mysql写循环语句_mysql

二、repert循环详解

repert循环语法结构如下:

repeat
【循环体】
until 【结束循环条件】
end repeart;

repeat循环语句SQL命令示例如下:

create procedure get_sum()
begin
declare sum int;
declare i int;
set sum=0;
set i=1;
repeat
set sum=sum+i;
set i=i+1;
until i=101
end repeat;
select sum;
end //

上述语句执行结果如下:

mysql自定义函数循环 mysql写循环语句_mysql_02

三、loop循环详解

loop循环语法结构如下:

【loop标签】:loop
if 【退出条件】 then
leave 【loop标签】;
end if;
end loop;

在上述结构中,leave语句的作用是跳出loop循环,l两个oop标签可以任意定义,但是必须相同。loop循环SQL语句示例如下:

create procedure get_sum()
begin
declare sum int;
declare i int;
set sum=0;
set i=1;
SUM_BEGIN:loop
set sum=sum+i;
set i=i+1;
if i=101 then
leave SUM_BEGIN;
end if;
end loop;
select sum;
end //

执行结果如下所示:

mysql自定义函数循环 mysql写循环语句_database_03