Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách dùng giá trị hiện tại của hàng để cung cấp giá trị mới trong SET của UPDATE?

Giá trị hiện tại của hàng có thể được dùng để cung cấp giá trị mới trong mệnh đề SET nếu hàng đó khớp với mệnh đề WHERE trong câu lệnh UPDATE. Ví dụ sau minh họa điều này.

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     | 6000 |
| 301       | ABE     | 7000 |
| 302       | ABF     | 3500 |
| 303       | ABG     | 3600 |
+-----------+---------+------+
5 rows in set (0.00 sec)

Truy vấn dưới đây sẽ tăng giá trị cột tender_id lên 100 và cũng cập nhật cột 'rate' theo 'tender_id' mới.

mysql> UPDATE tender SET tender_id = tender_id + 100, rate = tender_id + 500 WHERE tender_id > 300;
Query OK, 3 rows affected (0.06 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> SELECT * FROM tender;
+-----------+----------+------+
| tender_id | company  | rate |
+-----------+----------+------+
| 200       | ABC      | 1000 |
| 300       | ABD      | 5000 |
| 401       | ABE      | 901  |
| 402       | ABF      | 902  |
| 403       | ABG      | 903  |
+-----------+----------+------+
5 rows in set (0.00 sec)