22,209
社区成员
发帖
与我相关
我的任务
分享
set @i = 1;
update bbb set b1 = case when @i = 1 then b4 else b1 end,
b2 = case when @i = 2 then b4 else b2 END,
b2 = case when @i = 3 then b4 else b3 end
use test;
drop procedure if exists p1;
delimiter $$
create procedure p1()
begin
set @ssql = '';
set @i=3;
select @ssql:=concat('update bbb set ',CASE WHEN @i= 1 THEN 'b1' WHEN @i = 2 THEN 'b2' ELSE 'b3' END, '= b4');
prepare stmpStr from @ssql;
execute stmpStr;
end$$
delimiter ;
call p1();
drop procedure p1;
set @i=3;
if @i= 1
update bbb set b1=b4
else if @i=2
update bbb set b2=b4
else if @i=3
update bbb set b3=b4