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

นับจำนวนค่า NO ในคอลัมน์ ENUM ด้วย MySQL

การสร้างตารางด้วย ENUM

mysql> CREATE TABLE DemoTable1829 (
    Name VARCHAR(20),
    isTopper ENUM('YES','NO')
);

เพิ่มข้อมูล

mysql> INSERT INTO DemoTable1829 VALUES('Chris','yes');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');
mysql> INSERT INTO DemoTable1829 VALUES('Mike','no');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');

นับจำนวน NO แยกตามชื่อ

mysql> SELECT Name, SUM(isTopper='no') 
    FROM DemoTable1829 
    GROUP BY Name;

ผลลัพธ์:

+-------+--------------------+
| Name  | sum(isTopper='no') |
+-------+--------------------+
| Chris | 0                  |
| David | 0                  |
| Mike  | 1                  |
+-------+--------------------+

การทำงานของนิพจน์ Boolean

  • ใน MySQL ค่า TRUE = 1 และ FALSE = 0
  • isTopper='no' คืนค่า 1 ถ้าตรงกัน, 0 ถ้าไม่ตรง
  • SUM() รวมค่า 1/0 ได้จำนวนที่ตรงเงื่อนไข

วิธีอื่นๆ

-- ใช้ COUNT กรณีเงื่อนไข
SELECT Name, COUNT(CASE WHEN isTopper='no' THEN 1 END) 
FROM DemoTable1829 GROUP BY Name;

-- นับรวมทั้งตาราง
SELECT SUM(isTopper='no') FROM DemoTable1829;