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

MySQL: แปลงค่า Boolean (0/1) เป็นข้อความเพศ (MALE/FEMALE)

การใช้ 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 เป็นข้อความที่อ่านง่าย