在Mysql所有版本中存在一个严重的问题,即在执行错误查询时,它会将一列branch_code更新为零。这是查询,
update intra_staff set br_code=82 and staff_code=2918
查看查询的语法,这里完全错误,这里缺少类,所以它应该给出错误。但是这个查询成功执行并将表的所有记录更新到zoro,查询中没有提到任何一个,请告诉我为什么会这样。
为什么所有的brach代码都升级到零,这在查询中没有提到?
答案 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