如果值相同,UPDATE会覆盖值吗?

时间:2016-01-27 07:07:59

标签: mysql

如果不同,我只想更新数据库中的值。通过UPDATE的Oracle文档阅读,它说......

  

... UPDATE语句使用 new 值更新指定表中现有行的列。

由于它没有说它不会覆盖相同的值,我应该从字面上理解这个陈述吗?这是否意味着MySQL会为我做一些布尔匹配检查?

2 个答案:

答案 0 :(得分:4)

不,MySQL不会覆盖相同的值。

让我们说插入一些数据:

insert into foo(id,val1,val2,val3) values (0,1,2,3);
Query OK, 1 row affected (0.00 sec)

如果您使用相同的值更新它:

update foo set id=0, val1=1, val2=2, val3=3 where id=0;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

查看服务器响应0 rows affected

答案 1 :(得分:1)

sql查询通过实际替换它们来更新甚至相同的值。无论如何,你可以构造你的sql以避免它将替换相同的值。 (我认为后一种方式比正常程序更耗时,对最终结果可能没用)

相关问题