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

รวมหลายคำสั่ง UPDATE เป็นคำสั่งเดียวใน MySQL ด้วย CASE

ใช้ CASE WHEN ... THEN ... END ใน SET เพื่ออัปเดตหลายเงื่อนไขในคำสั่งเดียว

ตัวอย่าง

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(20)
);
Query OK, 0 rows affected (1.11 sec)
mysql> insert into DemoTable(Name) values('John');  Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable(Name) values('Carol'); Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(Name) values('David'); Query OK, 1 row affected (0.13 sec)

ข้อมูลก่อน

mysql> select * from DemoTable;
+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
| 3  | David |
+----+-------+

รวม UPDATE 3 คำสั่งเป็น 1

mysql> UPDATE DemoTable set Name= case when Name='John' then 'John Smith' when Name='Carol' then 'Carol Taylor' when Name='David' then 'David Miller' end where Name IN('John','Carol','David');
Query OK, 3 rows affected (0.12 sec)

ผลลัพธ์

mysql> select * from DemoTable;
+----+--------------+
| Id | Name         |
+----+--------------+
| 1  | John Smith   |
| 2  | Carol Taylor |
| 3  | David Miller |
+----+--------------+

มีประสิทธิภาพกว่ารัน UPDATE หลายครั้ง ลด Round-trip ไปยังเซิร์ฟเวอร์