如何使用單條 MySQL `UPDATE` 語句來更新多行中的列值?


如果 `WHERE` 子句中指定條件與多行匹配,則多行中列值可以在單條 `UPDATE` 語句中更新。在這種情況下,`SET` 子句將應用於所有匹配的行。

示例

假設我們有一個表 `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,其值已更新。

更新於: 20-6 月-2020

4 千 + 瀏覽

開啟您的 職業生涯

完成課程即可獲得認證

開始吧
廣告
© . All rights reserved.