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