การใช้ฟังก์ชัน IF()
ใน MySQL สามารถใช้ฟังก์ชัน IF() เพื่อตรวจสอบเงื่อนไขและคืนค่าตามที่ต้องการ ไวยากรณ์พื้นฐานคือ:
SELECT IF(yourColumn = 0, alternativeColumn, yourColumn) AS alias_name FROM yourTable;
ตัวอย่างการสร้างตารางและข้อมูลทดสอบ
CREATE TABLE demo30 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
value INT,
original_value INT
);
INSERT INTO demo30 (value, original_value) VALUES
(50, 10),
(1000, 0),
(0, 40),
(30, 0);
ข้อมูลในตาราง
+----+-------+----------------+ | id | value | original_value | +----+-------+----------------+ | 1 | 50 | 10 | | 2 | 1000 | 0 | | 3 | 0 | 40 | | 4 | 30 | 0 | +----+-------+----------------+
คำสั่ง SELECT พร้อมเงื่อนไข IF()
SELECT id, IF(original_value = 0, value, original_value) AS Result FROM demo30;
ผลลัพธ์
+----+--------+ | id | Result | +----+--------+ | 1 | 10 | | 2 | 1000 | | 3 | 40 | | 4 | 30 | +----+--------+
คำอธิบาย
- แถวที่ 1: original_value = 10 (ไม่ใช่ 0) → ใช้ original_value = 10
- แถวที่ 2: original_value = 0 → ใช้ value = 1000
- แถวที่ 3: original_value = 40 (ไม่ใช่ 0) → ใช้ original_value = 40
- แถวที่ 4: original_value = 0 → ใช้ value = 30
ทางเลือกอื่น: ฟังก์ชัน COALESCE() และ NULLIF()
หากต้องการจัดการค่า NULL พร้อมกัน สามารถใช้:
SELECT COALESCE(NULLIF(original_value, 0), value) AS Result FROM demo30;
วิธีนี้จะแปลง 0 เป็น NULL ก่อน แล้วค่อยเลือกค่าแรกที่ไม่ใช่ NULL