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

คำสั่ง SELECT ใน MySQL เพื่อดึงข้อมูลที่มีค่า NULL

การกรองข้อมูลที่มีค่า NULL ด้วย IS NULL

ใน MySQL (และ SQL มาตรฐาน) การเปรียบเทียบกับ NULL ต้องใช้ IS NULL หรือ IS NOT NULL ไม่สามารถใช้ = NULL หรือ != NULL ได้ เพราะ NULL ไม่เท่ากับอะไรเลย (รวมถึงตัวมันเอง)

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    CustomerName VARCHAR(100),
    CustomerCountryName VARCHAR(100)
);
Query OK, 0 rows affected (0.95 sec)

mysql> INSERT INTO DemoTable VALUES('Chris','US');
mysql> INSERT INTO DemoTable VALUES('Bob','UK');
mysql> INSERT INTO DemoTable VALUES('Carol',NULL);
mysql> INSERT INTO DemoTable VALUES('David','AUS');
mysql> INSERT INTO DemoTable VALUES('Mike',NULL);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+--------------+---------------------+
| CustomerName | CustomerCountryName |
+--------------+---------------------+
| Chris        | US                  |
| Bob          | UK                  |
| Carol        | NULL                |
| David        | AUS                 |
| Mike         | NULL                |
+--------------+---------------------+
5 rows in set (0.00 sec)

คำสั่งดึงเฉพาะแถวที่ CountryName เป็น NULL

mysql> SELECT * FROM DemoTable WHERE CustomerCountryName IS NULL;

ผลลัพธ์:

+--------------+---------------------+
| CustomerName | CustomerCountryName |
+--------------+---------------------+
| Carol        | NULL                |
| Mike         | NULL                |
+--------------+---------------------+
2 rows in set (0.00 sec)

คำอธิบาย

  • IS NULL : เงื่อนไขมาตรฐานสำหรับตรวจสอบ NULL
  • = NULL จะคืนค่า UNKNOWN (ไม่ใช่ TRUE/FALSE) จึงไม่ทำงาน
  • ใช้ IS NOT NULL เพื่อดึงแถวที่มีค่า (ไม่ใช่ NULL)
  • ฟังก์ชัน IFNULL() หรือ COALESCE() ใช้สำหรับแทนที่ค่า NULL ใน SELECT ไม่ใช่ WHERE