如果不同,我只想更新数据库中的值。通过UPDATE的Oracle文档阅读,它说......
... UPDATE语句使用 new 值更新指定表中现有行的列。
由于它没有说它不会覆盖相同的值,我应该从字面上理解这个陈述吗?这是否意味着MySQL会为我做一些布尔匹配检查?
答案 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以避免它将替换相同的值。 (我认为后一种方式比正常程序更耗时,对最终结果可能没用)