MySQL 如何用单个MySQL UPDATE语句更新多行的列值?
如果WHERE子句中指定的条件符合多行数据,则可以用单个UPDATE语句更新多行的列值。在这种情况下,SET子句将应用于所有匹配的行。
阅读更多:MySQL 教程
示例
假设我们有一个名为“tender”的表,如下所示 –
mysql> Select * from tender;
+-----------+---------+------+
| tender_id | company | rate |
+-----------+---------+------+
| 200 | ABC | 1000 |
| 300 | ABD | 5000 |
| 301 | ABE | 6000 |
| 302 | ABF | 2500 |
| 303 | ABG | 2600 |
+-----------+---------+------+
5 rows in set (0.00 sec)
现在,如果我们想要在tender_id大于或等于300的行中更新’rate’列,则可以使用以下查询 –
mysql> UPDATE tender SET rate = rate + 1000 WHERE tender_id >= 300;
Query OK, 4 rows affected (0.07 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> Select * from tender;
+-----------+---------+------+
| tender_id | company | rate |
+-----------+---------+------+
| 200 | ABC | 1000 |
| 300 | ABD | 6000 |
| 301 | ABE | 7000 |
| 302 | ABF | 3500 |
| 303 | ABG | 3600 |
+-----------+---------+------+
5 rows in set (0.00 sec)
我们可以从上面的结果集中观察到,具有tender_id ≥ 300的多个行的值已被更新。
极客教程