mysql循环判断结构

Mysql循环判断结构

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

if判断:
  if 条件 then xxx;
  [elseif 条件 then xxx;]
  [else xxx;]
  end if;
case when 判断
  case 
  when 条件 then xxx;
  when 条件  then xxx;
  else xxx;
  end case;
while循环
[标签名:]while 条件 do
   xxx
  end while [标签名];

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

leave 标签名;

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

iterate 标签名;
repeat循环
[标签名:]repeat
  xxxxx
  until 条件
  end repeat [标签名];

repeat与while相比至少执行一次

loop循环
[标签:]loop 
  xxxx
  if 条件 then leave [标签]; end if;
  end loop [标签];

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

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

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实现

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实现

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$
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值