MySQL正常行为

时间:2015-12-04 07:37:22

标签: mysql

在Mysql所有版本中存在一个严重的问题,即在执行错误查询时,它会将一列branch_code更新为零。这是查询,

update intra_staff set br_code=82 and staff_code=2918

查看查询的语法,这里完全错误,这里缺少类,所以它应该给出错误。但是这个查询成功执行并将表的所有记录更新到zoro,查询中没有提到任何一个,请告诉我为什么会这样。

为什么所有的brach代码都升级到零,这在查询中没有提到?

1 个答案:

答案 0 :(得分:2)

您在此查询中所说的是:

UPDATE intra_staff SET br_code = (82 AND staff_code = 2918)
对于(82 and staff_code = 2918) 2918,

1将成为真实(或staff_code),而在其他所有情况下均为假(0)。您将此结果(0或1)设置为br_code

根据您的需要,您可以使用此查询为br_code 2918将staff_code设置为82:

UPDATE intra_staff SET br_code = 82 WHERE staff_code = 2918

或者,如果您想将每一行设置为br_code 82并将staff_code设置为2918:

UPDATE intra_staff SET br_code = 82, staff_code = 2918