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

แปลงค่า Boolean เป็นเครื่องหมายบวก (1) และลบ (-1) ใน MySQL ด้วย IF()

การแปลง 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 ให้ผลลัพธ์เหมือนกัน