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

อัปเดตคอลัมน์ MySQL: เปลี่ยนค่า 'None' เป็น 'N/A' ด้วย UPDATE WHERE

สามารถอัปเดตค่าในคอลัมน์เฉพาะแถวที่ตรงเงื่อนไขได้โดยใช้ 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อัปเดตพร้อมกัน
อัปเดตด้วย CASESET 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 อย่างแม่นยำเพื่อไม่ให้อัปเดตผิดแถว