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

แสดงข้อมูลตามเงื่อนไข IS NULL OR != 1 ใน MySQL

การกรองข้อมูลด้วยเงื่อนไข 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 : ตรวจสอบไม่เท่ากับ 1
  • OR : ถ้าเงื่อนไขไหนเป็นจริงก็เลือก
  • แถว Bob (Score=1) ไม่ตรงเงื่อนไขใดเลย → ถูกตัดออก
  • แถว John (45) ตรง != 1 → ถูกเลือก
  • แถว Chris, David (NULL) ตรง IS NULL → ถูกเลือก