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

MySQL Mass Update ด้วย CASE WHEN / THEN / ELSE?


ไวยากรณ์สำหรับการอัปเดตจำนวนมากด้วย CASE WHEN/ THEN/ ELSE มีดังนี้ -

UPDATE yourTableName ตั้งค่า yourColumnName=case when yourColumnName=Value1 then anyUpdatedValue1 when yourColumnName=Value2 then anyUpdatedValue2 when yourColumnName=Value3 then anyUpdatedValue3 when yourColumnName=Value4 then anyUpdatedValue4else yourColumn> 

เพื่อทำความเข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง CaseUpdateDemo-> (-> Id int,-> Name varchar(100)-> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.78 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า CaseUpdateDemo (1,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า CaseUpdateDemo (2,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.27 วินาที )mysql> แทรกลงในค่า CaseUpdateDemo (3,'Mike');Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า CaseUpdateDemo (4,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก CaseUpdateDemo;

ผลลัพธ์

<ก่อนหน้า>+------+-------+| รหัส | ชื่อ |+------+-------+| 1 | จอห์น || 2 | แครอล || 3 | ไมค์ || 4 | Bob |+------+-------+4 แถวในชุด (0.00 วินาที)

ตอนนี้คุณสามารถเขียนข้อความค้นหาที่เรากล่าวถึงข้างต้นเพื่ออัปเดต id คอลัมน์ด้วย Case WHEN THEN ELSE แบบสอบถามมีดังนี้ −

mysql> อัปเดต CaseUpdateDemo ตั้งค่า Id=case เมื่อ Id=1 จากนั้น 1001-> เมื่อ Id=2 จากนั้น 1002-> เมื่อ Id=3 จากนั้น 1003-> เมื่อ Id=4 จากนั้น 1004-> อื่น Id-> สิ้นสุด; แบบสอบถาม ตกลง ได้รับผลกระทบ 4 แถว (0.15 วินาที) แถวที่ตรงกัน:4 เปลี่ยนแล้ว:4 คำเตือน:0

ตอนนี้คุณสามารถตรวจสอบว่าตารางได้รับการอัปเดตสำหรับคอลัมน์ ID โดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก CaseUpdateDemo;

ผลลัพธ์

<ก่อนหน้า>+------+-------+| รหัส | ชื่อ |+------+-------+| 1001 | จอห์น || 1002 | แครอล || 1003 | ไมค์ || 1004 | Bob |+------+-------+4 แถวในชุด (0.00 วินาที)