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

การทำงานของ CASE ใน MySQL - คู่มือฉบับสมบูรณ์

ฟังก์ชัน CASE ใน MySQL ทำงานคล้าย Switch Statement

CASE ใน MySQL มี 2 รูปแบบการใช้งานหลัก

รูปแบบที่ 1: เปรียบเทียบเงื่อนไข (Searched CASE)

CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END AS alias_name;

รูปแบบที่ 2: เปรียบเทียบค่าของคอลัมน์ (Simple CASE)

CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE default_result
END;

ตัวอย่างรูปแบบที่ 1: เปรียบเทียบเงื่อนไข

SELECT CASE 
    WHEN 45 < 55 THEN '55 is greater than 45'
    WHEN 10 != 11 THEN '10 is not equal to 11'
    ELSE 'Default case'
END AS Result;

ผลลัพธ์: 55 is greater than 45 (เงื่อนไขแรกเป็นจริง จึงคืนค่านี้ทันที)

ตัวอย่างรูปแบบที่ 2: เปรียบเทียบค่าคอลัมน์

สร้างตาราง CaseDemo:

CREATE TABLE CaseDemo (
    Id INT,
    Name VARCHAR(100)
);

INSERT INTO CaseDemo VALUES 
(1, 'John'),
(2, 'Sam');

ใช้ CASE กับคอลัมน์ Name:

SELECT CASE Name
    WHEN 'John' THEN 'His name is John'
    WHEN 'Sam' THEN 'His name is Sam'
    ELSE -1
END AS Result
FROM CaseDemo;

ผลลัพธ์:

Result
His name is John
His name is Sam

สรุป: CASE จะตรวจสอบเงื่อนไข/ค่าตามลำดับ และคืนค่าของเงื่อนไขแรกที่เป็นจริง หากไม่มีเงื่อนไขไหนตรง จะคืนค่า ELSE (ถ้ามี) หรือ NULL