欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql update多个字段 逗号 and 的错误例子

程序员文章站 2022-06-01 14:35:36
...

今天一个开发反馈update某行但不生效,场景如下:

mysql> select * from test;  
 +------+------+
 | c1   | c2   |
 +------+------+
 |    0 | a    |
 +------+------+

他想将c1列的值改成1、c2的值改成'b',然后用了如下sql:
update test set c1=1 and c2='b' where c1=0;
可以发现这个sql写法是错误的,正确写法应该是:
update test set c1=1,c2='b' where c1=0;
但第一个错误的sql运行没报错,因为被MySQL理解成:

update test set c1=(1 and c2='b') where c1=0;  
 =>
 update test set c1=(1 and 0) where c1=0;  
 ==>
 update test set c1=0 where c1=0;  

所以错误的sql相当啥都不做,但不仔细观察and应该改成逗号,还会觉得蛮诡异呢~