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

เราจะอัปเดตค่าคอลัมน์ในหลายแถวด้วยคำสั่ง MySQL UPDATE คำสั่งเดียวได้อย่างไร


ค่าของคอลัมน์ในหลายแถวสามารถอัปเดตได้ในคำสั่ง UPDATE เดียว หากเงื่อนไขที่ระบุในส่วนคำสั่ง WHERE ตรงกับหลายแถว ในกรณีนี้ คำสั่ง SET จะนำไปใช้กับแถวที่ตรงกันทั้งหมด

ตัวอย่าง

สมมติว่าเรามีตาราง 'ประกวดราคา' ดังนี้ -

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 เราก็สามารถใช้คำค้นหาต่อไปนี้ -

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 ได้รับการอัพเดตแล้ว