Control Flow Function: IF()
คืนค่าตามเงื่อนไข 3 อาร์กิวเมนต์
Syntax
IF(expr, value_if_true, value_if_false)
- expr: เงื่อนไข (TRUE = ไม่ใช่ 0 และไม่ใช่ NULL)
- value_if_true: ค่าที่คืนเมื่อ expr เป็น TRUE
- value_if_false: ค่าที่คืนเมื่อ expr เป็น FALSE (รวม 0 และ NULL)
ตัวอย่าง
mysql> SELECT IF(100=100, 'YES', 'NO');
+------------------------+
| IF(100=100, 'YES', 'NO') |
+------------------------+
| YES |
+------------------------+
mysql> SELECT IF(100=200, 'YES', 'NO');
+------------------------+
| IF(100=200, 'YES', 'NO') |
+------------------------+
| NO |
+------------------------+
เงื่อนไขที่เป็น TRUE
- ตัวเลข ≠ 0
- สตริง ≠ '' (Non-empty)
- Comparison ที่เป็นจริง (1=1, 'a'='a')
- IS NOT NULL
เงื่อนไขที่เป็น FALSE
- 0
- NULL
- '' (Empty string)
- Comparison ที่เป็นเท็จ
ข้อแตกต่างจาก CASE
- IF: แค่ 2 ทางเลือก (True/False)
- CASE: หลายเงื่อนไข (WHEN ... THEN ... ELSE)