การอัปเดตข้อมูลแบบมีเงื่อนไขใน 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;