การใช้ IF() แปลง Boolean เป็น String
ใน MySQL ไม่มี Boolean Type จริง ใช้ TINYINT(1) แทน (0 = false, 1 = true) ใช้ IF() แปลงเป็นข้อความ
ตัวอย่าง
mysql> create table DemoTable815(Gender BOOLEAN);
Query OK, 0 rows affected (0.84 sec)
mysql> insert into DemoTable815 values(true);
mysql> insert into DemoTable815 values(false);
mysql> insert into DemoTable815 values(false);
mysql> insert into DemoTable815 values(true);
ข้อมูลดิบ (0 และ 1)
+--------+
| Gender |
+--------+
| 1 |
| 0 |
| 0 |
| 1 |
+--------+
คำสั่งแปลงเป็นข้อความ
mysql> select if(Gender = true, 'MALE', 'FEMALE') as String from DemoTable815;
ผลลัพธ์:
+--------+
| String |
+--------+
| MALE |
| FEMALE |
| FEMALE |
| MALE |
+--------+
วิธีอื่นๆ
-- ใช้ CASE WHEN (มาตรฐาน ANSI SQL)
SELECT CASE Gender WHEN 1 THEN 'MALE' ELSE 'FEMALE' END as String FROM DemoTable815;
-- ใช้ ELT() (MySQL เฉพาะ) - index เริ่มที่ 1
SELECT ELT(Gender + 1, 'FEMALE', 'MALE') as String FROM DemoTable815;
สรุป
ใช้ IF(bool_col, 'true_text', 'false_text') หรือ CASE WHEN แปลง 0/1 เป็นข้อความที่อ่านง่าย