ใช้ CASE WHEN หรือ IF() แปลงค่าในคอลัมน์ (เช่น 0/1) ให้เป็นข้อความที่อ่านง่าย (ENABLED/DISABLED)
วิธีที่ 1: ใช้ CASE WHEN
SELECT col1, col2,
CASE WHEN flagColumn = 1 THEN 'ENABLED' ELSE 'DISABLED' END AS Status
FROM yourTable;
วิธีที่ 2: ใช้ IF()
SELECT col1, col2, IF(flagColumn, 'ENABLED', 'DISABLED') AS Status FROM yourTable;
ตัวอย่างการใช้งาน
สร้างตาราง MapKeys:
mysql> CREATE TABLE MapKeys (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(20),
-> isActive BOOLEAN,
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล:
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Larry',true),('David',false),('Mike',true),('Carol',false),('Sam',false),('Bob',true);
ข้อมูลเดิม (isActive = 1/0)
+----+-------+----------+ | Id | Name | isActive | +----+-------+----------+ | 1 | Larry | 1 | | 2 | David | 0 | | 3 | Mike | 1 | | 4 | Carol | 0 | | 5 | Sam | 0 | | 6 | Bob | 1 | +----+-------+----------+
ใช้ CASE WHEN
mysql> SELECT Id, Name,
-> CASE WHEN isActive = 1 THEN 'ENABLED' ELSE 'DISABLED' END AS Status
-> FROM MapKeys;
+----+-------+----------+ | Id | Name | Status | +----+-------+----------+ | 1 | Larry | ENABLED | | 2 | David | DISABLED | | 3 | Mike | ENABLED | | 4 | Carol | DISABLED | | 5 | Sam | DISABLED | | 6 | Bob | ENABLED | +----+-------+----------+
ใช้ IF() (สั้นกว่า)
mysql> SELECT Id, Name, IF(isActive, 'ENABLED', 'DISABLED') AS Status FROM MapKeys;
+----+-------+----------+ | Id | Name | Status | +----+-------+----------+ | 1 | Larry | ENABLED | | 2 | David | DISABLED | | 3 | Mike | ENABLED | | 4 | Carol | DISABLED | | 5 | Sam | DISABLED | | 6 | Bob | ENABLED | +----+-------+----------+
ประโยชน์: แสดงผลให้ User/Others อ่านเข้าใจง่ายกว่า 0/1