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

นับจำนวน NULL ในแต่ละแถวของ MySQL

ใช้ฟังก์ชัน ISNULL() (คืนค่า 1 ถ้า NULL, 0 ถ้าไม่ NULL) รวมกันเพื่อนับ NULL ต่อแถว

ตัวอย่างการใช้งาน

1. สร้างตาราง 2 คอลัมน์ตัวเลข

mysql> CREATE TABLE DemoTable (Number1 INT, Number2 INT);
mysql> INSERT INTO DemoTable VALUES (10, NULL), (NULL, NULL), (29, 98), (NULL, 119);

2. นับ NULL ต่อแถว

mysql> SELECT Number1, Number2, ISNULL(Number1) + ISNULL(Number2) AS NumberOfNULLs FROM DemoTable;

ผลลัพธ์

+---------+---------+---------------+
| Number1 | Number2 | NumberOfNULLs |
+---------+---------+---------------+
| 10      | NULL    | 1             |
| NULL    | NULL    | 2             |
| 29      | 98      | 0             |
| NULL    | 119     | 1             |
+---------+---------+---------------+

ฟังก์ชันตรวจสอบ NULL

ฟังก์ชันคืนค่าเมื่อ NULLคืนค่าเมื่อไม่ NULLStandard SQL
ISNULL(expr)10MySQL only
expr IS NULLTRUEFALSEYes
IFNULL(expr, val)valexprMySQL
COALESCE(expr, ...)ค่าแรกที่ไม่ NULLค่าแรกที่ไม่ NULLYes

นับ NULL หลายคอลัมน์แบบ Dynamic

-- MySQL 8.0: ใช้ JSON + Generated Column
ALTER TABLE DemoTable ADD COLUMN null_count INT 
GENERATED ALWAYS AS (ISNULL(Number1) + ISNULL(Number2)) STORED;