mysql之子程序的分支CASE

1.CASE分支 

子程序的case分支不同于select语句中的case分支

delimiter $$

create procedure test_case(my_id int)
begin
    declare my_name varchar(255) default '';
    select name into my_name from user where id = my_id;

    case my_name
        when '中' then update user set name='中华人民' where id = my_id;
        when '国' then update user set name='共和国' where id = my_id;
        else update user set name='加油!中国' where id = my_id;
        end case;
end;

$$
delimiter ;

2.流程控制的查询条件应用

 

场景:循环更新

delimiter $$
create procedure testwhile()
begin
    decalre my_id int default 0;
    while(select (1) from user where number =0)>0 do
    begin
        select id into my_id from user where number = 0 limit 1;
        update user set number =0 where id = my_id;
    end;
    end while;
end;
$$
delimiter ;

任何流程控制的条件中,可以是复杂的sql查询混合表达式

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值