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

MySQL UPDATE ด้วยเงื่อนไข IF

การอัปเดตข้อมูลแบบมีเงื่อนไขใน MySQL

ใช้ฟังก์ชัน IF() ภายในคำสั่ง UPDATE เพื่อเปลี่ยนค่าเฉพาะแถวที่ตรงเงื่อนไข

ไวยากรณ์

UPDATE yourTableName 
SET yourColumnName = IF(yourColumnName = yourOldValue, yourNewValue, yourColumnName);

ตัวอย่าง: อัปเดตอายุ 23 ปี เป็น 26 ปี

CREATE TABLE updateIfConditionDemo (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(20),
    UserAge INT
);

INSERT INTO updateIfConditionDemo(UserName, UserAge) VALUES 
('Larry', 23), ('Mike', 21), ('Sam', 23), ('David', 23), ('Maxwell', 23);

คำสั่ง UPDATE

UPDATE updateIfConditionDemo 
SET UserAge = IF(UserAge = 23, 26, UserAge);

ผลลัพธ์

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1      | Larry    | 26      |
| 2      | Mike     | 21      |
| 3      | Sam      | 26      |
| 4      | David    | 26      |
| 5      | Maxwell  | 26      |
+--------+----------+---------+

คำอธิบาย

  • IF(condition, true_value, false_value)
  • ถ้า UserAge = 23 ให้เปลี่ยนเป็น 26, ไม่ใช่ให้คงค่าเดิม
  • Rows matched: 5, Changed: 4 (Mike ไม่เปลี่ยน)

ทางเลือกอื่น: CASE WHEN

UPDATE table SET col = CASE WHEN col = 23 THEN 26 ELSE col END;