写sql,更改状态值,把0改成1,1改成0

看到一个非常有意思的sql案例,记录一下

写sql,更改状态值,把0改成1,1改成0


第一种:

update mytable set flag=1 where flag=0;
update mytable set flag=0 where flag=1;


第二种:

update mytable set flag=case when flag=0 then 1 else 0 end;


第三种:

update mytable set flag=-flag+1;


你会选择哪一种?


如果你选择第一种

所有数据flag=0毁灭吧,喜提提桶跑路


如果你选择第二种

完成任务,可读性高


如果你选择第三种

完成任务,公司开你得考虑一下后果,可读性差

如果flag=1,成这样flag=-1+1

如果flag=0,成这样flag=-0+1

Preview Image