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

ข้ามค่าว่างและ NULL ใน MySQL

วิธีกรองข้อมูลข้ามค่า NULL และ Empty String ใน MySQL

ใช้เงื่อนไข IS NOT NULL และ <> '' (หรือ != '') ร่วมกันใน WHERE

SELECT * FROM yourTableName WHERE yourColumn IS NOT NULL AND yourColumn <> '';

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูลผสม NULL, Empty String, และ Space:

mysql> create table DemoTable (Id int, FirstName varchar(20));
mysql> insert into DemoTable values(100,'Larry');
mysql> insert into DemoTable values(101,'');
mysql> insert into DemoTable values(102,'Chris');
mysql> insert into DemoTable values(103,NULL);
mysql> insert into DemoTable values(104,' ');
mysql> insert into DemoTable values(105,'Robert');
mysql> insert into DemoTable values(106,NULL);

ข้อมูลทั้งหมด:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 101  |           |
| 102  | Chris     |
| 103  | NULL      |
| 104  |           |
| 105  | Robert    |
| 106  | NULL      |
+------+-----------+

คิวรีข้าม NULL และ Empty String:

mysql> select * from DemoTable where FirstName IS NOT NULL AND FirstName <> '';
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 102  | Chris     |
| 105  | Robert    |
+------+-----------+

หมายเหตุ: แถว Id 104 (Space ' ') ไม่ถูกกรองออก เพราะไม่ใช่ Empty String | หากต้องการกรอง Space ด้วย ให้ใช้ TRIM(FirstName) <> '' หรือ FirstName NOT REGEXP '^[[:space:]]*$'

รูปแบบย่อ (MySQL 8.0+): WHERE FirstName IS NOT NULL AND FirstName != '' (ทำงานเหมือนกัน)