การกรองข้อมูลด้วยเงื่อนไข IS NULL หรือไม่เท่ากับค่า
เมื่อต้องการเลือกแถวที่คอลัมน์หนึ่งเป็น NULL หรือ ไม่เท่ากับค่าที่กำหนด เราใช้ OR ร่วมกับ IS NULL และ !=
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
Score INT
);
Query OK, 0 rows affected (1.10 sec)
mysql> INSERT INTO DemoTable(Name, Score) VALUES('John', 45);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('Chris', NULL);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('David', NULL);
mysql> INSERT INTO DemoTable(Name, Score) VALUES('Bob', 1);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+----+-------+-------+
| Id | Name | Score |
+----+-------+-------+
| 1 | John | 45 |
| 2 | Chris | NULL |
| 3 | David | NULL |
| 4 | Bob | 1 |
+----+-------+-------+
4 rows in set (0.00 sec)
คำสั่งกรอง Score IS NULL OR Score != 1
mysql> SELECT * FROM DemoTable WHERE Score IS NULL OR Score != 1;
ผลลัพธ์:
+----+-------+-------+
| Id | Name | Score |
+----+-------+-------+
| 1 | John | 45 |
| 2 | Chris | NULL |
| 3 | David | NULL |
+----+-------+-------+
3 rows in set (0.00 sec)
คำอธิบาย
Score IS NULL: ตรวจสอบค่า NULL (ไม่สามารถใช้Score = NULLได้)Score != 1: ตรวจสอบไม่เท่ากับ 1OR: ถ้าเงื่อนไขไหนเป็นจริงก็เลือก- แถว Bob (Score=1) ไม่ตรงเงื่อนไขใดเลย → ถูกตัดออก
- แถว John (45) ตรง
!= 1→ ถูกเลือก - แถว Chris, David (NULL) ตรง
IS NULL→ ถูกเลือก