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

อัปเดตหลายคอลัมน์ในคำสั่ง MySQL เดียว

ใช้ UPDATE ... SET col1 = ..., col2 = ... อัปเดตหลายคอลัมน์พร้อมกันในคำสั่งเดียว

ตัวอย่างการใช้งาน

1. สร้างตารางและข้อมูล

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(100),
    -> StudentCountryName VARCHAR(100)
    -> );
mysql> INSERT INTO DemoTable(StudentName, StudentCountryName) VALUES ('John', 'US');

2. อัปเดต Name และ Country พร้อมกัน

mysql> UPDATE DemoTable 
    -> SET StudentName = REPLACE(StudentName, 'John', 'Chris'),
    ->     StudentCountryName = REPLACE(StudentCountryName, 'US', 'UK');

ผลลัพธ์

+-----------+-------------+--------------------+
| StudentId | StudentName | StudentCountryName |
+-----------+-------------+--------------------+
| 1         | Chris       | UK                 |
+-----------+-------------+--------------------+

รูปแบบ UPDATE หลายคอลัมน์

UPDATE table_name
SET 
    col1 = expr1,
    col2 = expr2,
    col3 = expr3,
    ...
WHERE condition;

การใช้ REPLACE() ใน UPDATE

  • REPLACE(str, from_str, to_str) แทนที่ทุกครั้งที่พบ from_str
  • Case-Sensitive
  • หากไม่พบ from_str คืนค่าเดิม (ไม่เปลี่ยน)

ข้อควรระวัง

  • ไม่มี WHERE → อัปเดตทุกแถว
  • การอัปเดตหลายคอลัมน์เป็น Atomic (สำเร็จทั้งหมดหรือล้มเหลวทั้งหมด)
  • Trigger AFTER UPDATE จะไฟร์ครั้งเดียวต่อแถว (ไม่ใช่ต่อคอลัมน์)