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

แสดงข้อมูลโดยละเว้น NULL ใน MySQL

ใช้ IS NOT NULL ในเงื่อนไข WHERE เพื่อกรองเฉพาะแถวที่ไม่เป็น NULL

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

1. สร้างตารางและข้อมูลมี NULL ปน

mysql> CREATE TABLE DemoTable (FirstName VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES ('John'), (NULL), ('Chris'), (NULL), ('Robert'), (NULL);

2. ข้อมูลทั้งหมด (รวม NULL)

+-----------+
| FirstName |
+-----------+
| John      |
| NULL      |
| Chris     |
| NULL      |
| Robert    |
| NULL      |
+-----------+

3. กรองเฉพาะ NOT NULL

mysql> SELECT * FROM DemoTable WHERE FirstName IS NOT NULL;

ผลลัพธ์

+-----------+
| FirstName |
+-----------+
| John      |
| Chris     |
| Robert    |
+-----------+

เคล็ดลับเพิ่มเติม

นับจำนวน NULL / NOT NULL

SELECT 
    COUNT(*) AS total_rows,
    COUNT(FirstName) AS non_null_count,
    COUNT(*) - COUNT(FirstName) AS null_count
FROM DemoTable;

แทนที่ NULL ด้วยค่าอื่น (COALESCE / IFNULL)

SELECT COALESCE(FirstName, 'Unknown') FROM DemoTable;
SELECT IFNULL(FirstName, 'Unknown') FROM DemoTable;

ใน JOIN: ใช้ IS NOT NULL กรอง

SELECT * FROM table1 t1 
JOIN table2 t2 ON t1.id = t2.id 
WHERE t2.some_column IS NOT NULL;