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

การแสดงข้อมูล NULL และ NOT NULL ยกเว้นค่าเฉพาะใน MySQL

ใน MySQL สามารถค้นหาข้อมูลที่เป็น NULL ได้ด้วย IS NULL และยกเว้นค่าเฉพาะได้ด้วยออปเจอเรเตอร์ != (หรือ <>)

สร้างตารางตัวอย่าง

mysql> create table DemoTable ( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    PlayerName varchar(40) ); 
Query OK, 0 rows affected (0.50 sec)

เพิ่มข้อมูลตัวอย่าง (รวมค่า NULL)

mysql> insert into DemoTable(PlayerName) values('Adam'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(PlayerName) values(NULL); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(PlayerName) values('Sam'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(PlayerName) values('Mike'); Query OK, 1 row affected (0.08 sec)

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

mysql> select *from DemoTable;

ผลลัพธ์:

+----+------------+
| Id | PlayerName |
+----+------------+
| 1  | Adam       |
| 2  | NULL       |
| 3  | Sam        |
| 4  | Mike       |
+----+------------+
4 rows in set (0.00 sec)

คิวรี่แสดงข้อมูล NULL และ NOT NULL ยกเว้นค่า 'Sam'

mysql> select *from DemoTable 
    where PlayerName!='Sam' 
    or PlayerName IS NULL;

ผลลัพธ์ (ไม่รวมแถวที่ PlayerName = 'Sam'):

+----+------------+
| Id | PlayerName |
+----+------------+
| 1  | Adam       |
| 2  | NULL       |
| 4  | Mike       |
+----+------------+
3 rows in set (0.00 sec)

จุดสำคัญ

  • การเปรียบเทียบกับ NULL ต้องใช้ IS NULL หรือ IS NOT NULL เท่านั้น ไม่สามารถใช้ = NULL ได้
  • เงื่อนไข OR PlayerName IS NULL ทำให้แถวที่เป็น NULL ถูกนำมารวมในผลลัพธ์
  • ออปเจอเรเตอร์ != และ <> ให้ผลลัพธ์เหมือนกัน