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

ใช้ IF() ใน MySQL แสดงข้อความ YES/NO แบบกำหนดเอง

การเตรียมข้อมูล

mysql> CREATE TABLE DemoTable1850 (OrderStatus VARCHAR(20));

mysql> INSERT INTO DemoTable1850 VALUES('Yes'), ('No'), ('Yes'), ('Yes');

ใช้ IF() สร้างข้อความกำหนดเอง

mysql> SELECT IF(OrderStatus = 'Yes', 'Order has been placed', 'Failed') AS Status
    FROM DemoTable1850;

ผลลัพธ์:

+-----------------------+
| Status                |
+-----------------------+
| Order has been placed |
| Failed                |
| Order has been placed |
| Order has been placed |
+-----------------------+

ไวยากรณ์ IF()

IF(condition, value_if_true, value_if_false)

ความแตกต่าง IF() vs CASE

ตัวอย่าง CASE (ยืดหยุ่นกว่า)

SELECT CASE OrderStatus
    WHEN 'Yes' THEN 'Order has been placed'
    WHEN 'No' THEN 'Failed'
    WHEN 'Pending' THEN 'Waiting for confirmation'
    ELSE 'Unknown status'
END AS Status
FROM DemoTable1850;

กรณีใช้งานจริง

  • แปลง Flag (Y/N, 1/0, T/F) เป็นข้อความอ่านง่าย
  • สร้าง Label สำหรับ Report/UI
  • Conditional Aggregation: SUM(IF(status='active', 1, 0))
คุณสมบัติIF()CASE
จำนวนเงื่อนไข1 เงื่อนไข (True/False)หลายเงื่อนไข (WHEN ... THEN ...)
ความซับซ้อนง่ายซับซ้อนได้
Standard SQLMySQL SpecificANSI SQL Standard