我是靠谱客的博主 粗犷抽屉,这篇文章主要介绍mysql循环判断结构,现在分享给大家,希望可以做个参考。

Mysql循环判断结构

在自定义函数或者存储过程中经常要用到的循环判断结构:

if判断:

复制代码
1
2
3
4
5
if 条件 then xxx; [elseif 条件 then xxx;] [else xxx;] end if;

case when 判断

复制代码
1
2
3
4
5
6
case when 条件 then xxx; when 条件 then xxx; else xxx; end case;

while循环

复制代码
1
2
3
4
[标签名:]while 条件 do xxx end while [标签名];

离开循环(必须加标签名)

复制代码
1
2
leave 标签名;

跳过本次循环(必须加标签名):

复制代码
1
2
iterate 标签名;

repeat循环

复制代码
1
2
3
4
5
[标签名:]repeat xxxxx until 条件 end repeat [标签名];

repeat与while相比至少执行一次

loop循环

复制代码
1
2
3
4
5
[标签:]loop xxxx if 条件 then leave [标签]; end if; end loop [标签];

loop循环必须手动leave,不然会无限循环下去

案例:实现偶数累加,如传入10,则2+4+6+8+10;
while实现:

复制代码
1
2
3
4
5
6
7
8
9
10
11
begin declare a int default 0; declare b int default 0; while_name:while a<=n DO if mod(a,2)=1 then set a:=a+1; ITERATE while_name ; end if; set b:=b+a; set a:=a+1; end while while_name; return b; end$

repeat实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
begin declare a int default 0; declare b int default 0; repeat_name:repeat if mod(a,2)=1 then set a:=a+1; ITERATE repeat_name ; end if; set b:=b+a; set a:=a+1; until a>n end repeat repeat_name; return b; end$

loop实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
begin declare a int default 0; declare b int default 0; loop_name:loop if a>n then leave loop_name ;end if ; if mod(a,2)=1 then set a:=a+1; ITERATE loop_name ; end if; set b:=b+a; set a:=a+1; end loop loop_name; return b; end$

最后

以上就是粗犷抽屉最近收集整理的关于mysql循环判断结构的全部内容,更多相关mysql循环判断结构内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(91)

评论列表共有 0 条评论

立即
投稿
返回
顶部