Giá trị cột trên nhiều hàng có thể được cập nhật trong một câu lệnh UPDATE duy nhất nếu điều kiện được chỉ định trong mệnh đề WHERE khớp với nhiều hàng. Trong trường hợp này, mệnh đề SET sẽ được áp dụng cho tất cả các hàng khớp.
Ví dụ
Giả sử chúng ta có bảng 'tender' như sau:
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)
Bây giờ nếu chúng ta muốn cập nhật cột 'rate' ở những hàng có tender_id lớn hơn hoặc bằng 300, ta dùng truy vấn sau:
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)
Có thể quan sát từ tập kết quả trên rằng giá trị ở nhiều hàng, có tender_id >= 300, đã được cập nhật.