如果值相同,UPDATE 是否会覆盖它们?

use*_*440 3 mysql

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

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

既然它没有说它不会覆盖相同的值,我应该从字面上理解这个说法吗?这是否意味着 MySQL 会为我进行某种布尔匹配检查?

Gus*_*Gil 5

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

假设我们插入一些数据:

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

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

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
Run Code Online (Sandbox Code Playgroud)

查看服务器响应0 rows affected

  • 哦,是的,我忘记了反馈。这是一个有用的东西,我现在会更频繁地使用它。谢谢 :) (3认同)