MySql - 当我用'和'更新时会发生什么

时间:2014-02-18 13:33:06

标签: mysql

我跑了......

update TABLE set COLUMN1='XXX' and  COLUMN2='YYY' where ID=9999;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

正确查询:

update TABLE set COLUMN1='XXX' , COLUMN2='YYY' where ID=9999;

为什么MYSQL没有抛出任何错误?

1 个答案:

答案 0 :(得分:2)

我刚检查过它,看起来像MySQL对待

  

'XXX'和COLUMN2 ='YYY'

像表达一样。所以它比较了COLUMN2和'YYY'的值,获得布尔结果并执行'XXX'和那个结果,所以你可能在COLUMN1中得到0,因为'XXX'不是DOUBLE / INTEGER / BOOLEAN。 COLUMN2将保持不变。

这种方式这个查询不是错误的,它只是不符合你的预期。