mysql 更新时where条件缺失导致更新全表问题
1、问题
更新时where条件缺失导致更新全表问题
2、错误sql
update order set `status`=1 in ('XX001','XX002','XX003');
- 
错误分析: 更新整个 order表,并没有限制更新的范围。原因是这个SQL语句在 IN子句中没有提供任何条件,导致MySQL将IN子句视为一个包含了所有order_id值的列表。在这种情况下,IN子句将始终返回TRUE,因为'XX001'、'XX002'和'XX003'等值都会被认为在这个列表中,而没有匹配的值也被视为在列表中。因为没有提供合适的条件来筛选需要更新的记录,所以整个 order表的status字段都会被设置为1。 
3、正确sql
update order set `status`=1 where order_code in ('XX001','XX002','XX003');

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号