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

Làm cách nào chúng ta có thể sử dụng các giá trị hiện có của các hàng để cung cấp các giá trị mới trong mệnh đề SET của câu lệnh UPDATE?

Các giá trị hiện có của hàng có thể được sử dụng để cung cấp các giá trị mới trong mệnh đề SET nếu hàng đó khớp với mệnh đề WHERE trong câu lệnh CẬP NHẬT. Sau đây là ví dụ để chứng minh điều đó.

Ví dụ

Giả sử chúng ta có một bảng tên là 'thầu' 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 bên dưới sẽ tăng các giá trị trong cột thầu_id thêm 100 và cũng cập nhật cột "tỷ lệ" phù hợp với "thầu_mục" 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)