Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีอัปเดตค่าคอลัมน์หลายแถวพร้อมกันด้วยคำสั่ง UPDATE เดียวใน MySQL

ค่าคอลัมน์หลายแถวสามารถอัปเดตได้ในคำสั่ง UPDATE เดียว หากเงื่อนไขใน WHERE ตรงกับหลายแถว ในกรณีนี้ 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)

ต้องการอัปเดตคอลัมน์ rate โดยที่ tender_id มากกว่าหรือเท่ากับ 300:

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 ถูกอัปเดตแล้ว