การแปลง Boolean (0/1) เป็น Positive/Negative Sign ด้วย IF()
ใน MySQL BOOLEAN เป็นอีเลียสของ TINYINT(1) ค่า TRUE = 1, FALSE = 0 เราสามารถแปลงเป็น +1 และ -1 ได้ด้วยฟังก์ชัน IF()
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (isMarried BOOLEAN);
Query OK, 0 rows affected (0.60 sec)
mysql> INSERT INTO DemoTable VALUES(TRUE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(TRUE);
แสดงข้อมูลทั้งหมด (MySQL แสดง 1/0)
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-----------+
| isMarried |
+-----------+
| 1 |
| 0 |
| 0 |
| 1 |
+-----------+
4 rows in set (0.00 sec)
คำสั่งแปลง Boolean เป็น +1 / -1
mysql> SELECT IF(isMarried, 1, -1) FROM DemoTable;
ผลลัพธ์:
+--------------------+
| if(isMarried,1,-1) |
+--------------------+
| 1 |
| -1 |
| -1 |
| 1 |
+--------------------+
4 rows in set (0.00 sec)
คำอธิบาย
IF(isMarried, 1, -1): ถ้า isMarried เป็น TRUE (1) ให้ 1, ถ้า FALSE (0) ให้ -1- ใน MySQL ค่า Non-zero ถือว่า TRUE, Zero ถือว่า FALSE
- มีประโยชน์สำหรับการคำนวณทางสถิติหรือคะแนนที่ต้องการน้ำหนักบวก/ลบ
- ฟังก์ชัน
CASE WHEN isMarried THEN 1 ELSE -1 ENDให้ผลลัพธ์เหมือนกัน