บทความนี้สาธิตการใช้ฟังก์ชัน IF() ใน SELECT เพื่อแสดงค่าที่ปรับแต่ง: หากค่าเป็น 0 ให้แสดงค่าที่กำหนด (100000) มิฉะนั้นแสดงค่าเดิม (คล้าย COALESCE/ISNULL สำหรับ 0)
สร้างตารางและข้อมูล (มีค่า 0 หลายค่า)
mysql> CREATE TABLE DemoTable749 (Value INT);
Query OK, 0 rows affected (1.02 sec)
mysql> INSERT INTO DemoTable749 VALUES(10), (0), (769), (0), (78), (0);
คิวรีตรวจสอบและแทนที่ 0 ด้วย IF
mysql> SELECT *, IF(Value = 0, 100000, Value) FROM DemoTable749;
ผลลัพธ์
+-------+--------------------------+
| Value | if(Value=0,100000,Value) |
+-------+--------------------------+
| 10 | 10 |
| 0 | 100000 |
| 769 | 769 |
| 0 | 100000 |
| 78 | 78 |
| 0 | 100000 |
+-------+--------------------------+
คำอธิบาย:
IF(condition, true_value, false_value)- ฟังก์ชันเงื่อนไข InlineValue = 0- เงื่อนไขตรวจสอบเป็น 0100000- ค่าที่จะแสดงถ้าเป็น 0Value- ค่าที่จะแสดงถ้าไม่ใช่ 0
ฟังก์ชันคล้ายกัน:
COALESCE(val1, val2, ...)- คืนค่าแรกที่ไม่ใช่ NULL (ไม่ตรวจสอบ 0)IFNULL(val1, val2)- คืน val2 ถ้า val1 เป็น NULLNULLIF(val1, val2)- คืน NULL ถ้า val1 = val2- สำหรับ UPDATE จริง:
UPDATE table SET Value = IF(Value=0, 100000, Value)