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

คิวรี MySQL เดียว: ยกเว้นเรคคอร์ดและแสดงค่า NULL

ใช้ NOT IN ยกเว้นค่าเฉพาะ ร่วมกับ IS NULL แสดงค่า NULL

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

mysql> create table DemoTable793 ( 
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    StudentName varchar(100) ); 
Query OK, 0 rows affected (0.81 sec)

mysql> insert into DemoTable793(StudentName) values('Adam'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable793(StudentName) values('Bob'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable793(StudentName) values(null); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable793(StudentName) values('Chris'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable793(StudentName) values('Robert'); Query OK, 1 row affected (1.03 sec)

คิวรียกเว้น 'Chris' แต่แสดง NULL

mysql> select * from DemoTable793 
where StudentName NOT IN('Chris') OR StudentName IS NULL;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Adam        |
| 2         | Bob         |
| 3         | NULL        |
| 5         | Robert      |
+-----------+-------------+
4 rows in set (0.00 sec)

สังเกต: NOT IN ไม่จับค่า NULL ได้ (NULL NOT IN (...) = UNKNOWN) จึงต้องเพิ่ม OR ... IS NULL เข้าไป