更新列数而不是行数

时间:2011-05-04 09:13:45

标签: mysql

使用以下更新语句更新了

1

但我如何知道是否只更新了1个或多于一个?

mysql> select * from table1;
+------+------+--------+
| pid  | name | city   |
+------+------+--------+
|    1 | aa   | delhi  | 
|    2 | bb   | delhi  | 
|    3 | cc   | mumbai | 
|    4 | abc  | mumbai | 
+------+------+--------+
4 rows in set (0.00 sec)

mysql> update table1 set city='pune', name='salman' where pid = 4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

2 个答案:

答案 0 :(得分:0)

即使列值相同,MySQL也会覆盖结果。它不会检查当前列值和新列值是否相同,它只是按照您的意思执行 - 因为您是决定更新内容的人。

答案 1 :(得分:0)

视觉上你可以通过再次运行你的选择来检查,但我认为你不想这样。

一种方法是存储更改历史记录并为当前行使用某种标记。所以你要选择当前行,并更新当前行以弃用它,然后插入包含所有数据的新行。