Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะใช้ค่าที่มีอยู่ของแถวเพื่อให้ค่าใหม่ในส่วนคำสั่ง SET ของคำสั่ง UPDATE ได้อย่างไร


ค่าที่มีอยู่ของแถวสามารถใช้เพื่อระบุค่าใหม่ในส่วนคำสั่ง SET หากแถวนั้นตรงกับส่วนคำสั่ง WHERE ในคำสั่ง UPDATE ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็น

ตัวอย่าง

สมมติว่าเรามีตารางชื่อ 'tender' ดังนี้ −

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 100 และอัปเดตคอลัมน์ "อัตรา" ตาม "tender_id" ใหม่ด้วย

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)