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

MySQL: ใช้ IF() แทน Ternary Operator (?:)

Ternary Operator ในภาษาอื่น

(condition) ? valueIfTrue : valueIfFalse;

MySQL ไม่รองรับ Syntax นี้

ใช้ IF() แทน

IF(condition, valueIfTrue, valueIfFalse)

ตัวอย่าง

Case 1: 3 > 5 (False)

mysql> SELECT IF(3 > 5, 'Condition is true', 'Condition is not true') AS ConditionalResult;
+-----------------------+
| ConditionalResult     |
+-----------------------+
| Condition is not true |
+-----------------------+

Case 2: 3 < 5 (True)

mysql> SELECT IF(3 < 5, 'Condition is true', 'Condition is not true') AS ConditionalResult;
+-------------------+
| ConditionalResult |
+-------------------+
| Condition is true |
+-------------------+

ฟังก์ชันเงื่อนไขอื่นๆ

  • CASE WHEN ... THEN ... ELSE ... END: หลายเงื่อนไข
  • COALESCE(val1, val2, ...): คืนค่าแรกที่ไม่ใช่ NULL
  • NULLIF(val1, val2): คืน NULL ถ้า val1=val2

CASE Example:

SELECT CASE 
    WHEN score >= 90 THEN 'A'
    WHEN score >= 80 THEN 'B'
    WHEN score >= 70 THEN 'C'
    ELSE 'F'
END AS Grade FROM students;