Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể cập nhật giá trị cột trên nhiều hàng bằng một câu lệnh MySQL UPDATE?


Giá trị cột trên nhiều hàng có thể được cập nhật trong một câu lệnh CẬP 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 phù hợp.

Ví dụ

Giả sử chúng ta có một bảng 'thầu' 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" trong đó bid_id lớn hơn hoặc bằng 300 thì chúng ta có thể sử 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)

Từ tập kết quả trên, chúng ta có thể quan sát thấy các giá trị trong nhiều hàng, có bid_id> =300, đã được cập nhật.