UPDATE
order_clear
set
clear_status = 10,
clear_way = clear_way = 11
where
id = '123'
今天在审核SQL,发现开发同事提了这么一条修数SQL。初看很简单,根据id变更值,影响行数1,基本可以放行。但又仔细看了下set clear_way = clear_way = 11
,什么写法?多复制了一次字段名?还是为了判断 clear_way == 11
?
如果直接执行的话,你猜clear_way最终会被设置成什么值?0,1,11?
答案:0
会先将后面的表达式进行计算clear_way=(clear_way=11),而开发同事本身是要将clear_way置为11的,此时clear_way!=11,因此计算结果clear_way=0
Comments