สามารถอัปเดตค่าในคอลัมน์เฉพาะแถวที่ตรงเงื่อนไขได้โดยใช้ UPDATE ... SET ... WHERE ในที่นี้เปลี่ยนค่า 'None' ให้กลายเป็น 'N/A'
ตัวอย่างการใช้งาน
1. สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable1903 ( FirstName varchar(20), LastName varchar(20), Age int ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1903 values('John','Smith',23); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Miller',28); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Taylor',26); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('Chris','Brown',26); Query OK, 1 row affected (0.00 sec)
ข้อมูลก่อนอัปเดต:
mysql> select * from DemoTable1903;
+-----------+----------+------+ | FirstName | LastName | Age | +-----------+----------+------+ | John | Smith | 23 | | None | Miller | 28 | | None | Taylor | 26 | | Chris | Brown | 26 | +-----------+----------+------+ 4 rows in set (0.00 sec)
2. อัปเดต FirstName = 'None' ให้เป็น 'N/A'
mysql> update DemoTable1903 set FirstName = 'N/A' where FirstName = 'None'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0
3. ตรวจสอบผลลัพธ์
mysql> select * from DemoTable1903;
+-----------+----------+------+ | FirstName | LastName | Age | +-----------+----------+------+ | John | Smith | 23 | | N/A | Miller | 28 | | N/A | Taylor | 26 | | Chris | Brown | 26 | +-----------+----------+------+ 4 rows in set (0.00 sec)
รูปแบบ UPDATE แบบต่างๆ
| รูปแบบ | Syntax | ใช้เมื่อ |
|---|---|---|
| อัปเดต 1 คอลัมน์ | SET col = val WHERE cond | ทั่วไป |
| อัปเดตหลายคอลัมน์ | SET col1 = val1, col2 = val2 WHERE cond | อัปเดตพร้อมกัน |
| อัปเดตด้วย CASE | SET col = CASE WHEN ... END WHERE cond | หลายเงื่อนไข |
| อัปเดตจากตารางอื่น | UPDATE t1 JOIN t2 SET t1.col = t2.col WHERE ... | Join table |
คำสั่งที่เกี่ยวข้อง
-- ดูจำนวนแถวที่จะเปลี่ยนแปลงก่อน UPDATE จริง SELECT * FROM DemoTable1903 WHERE FirstName = 'None'; -- Rollback (ถ้ายังไม่ COMMIT และใช้ Transaction) START TRANSACTION; UPDATE ...; ROLLBACK; -- หรือ COMMIT;
สรุป: ใช้ UPDATE table SET column = 'new_value' WHERE column = 'old_value' เพื่อเปลี่ยนค่าเฉพาะแถวที่ตรงเงื่อนไข ใช้ WHERE อย่างแม่นยำเพื่อไม่ให้อัปเดตผิดแถว