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

คำสั่ง MySQL สำหรับลบแถวที่มีค่า NULL ในคอลัมน์

การลบแถวที่มีค่า NULL ด้วย DELETE ... WHERE IS NULL

เมื่อต้องการลบแถวที่คอลัมน์ใดคอลัมน์หนึ่งมีค่า NULL ให้ใช้คำสั่ง DELETE ร่วมกับเงื่อนไข WHERE column IS NULL ไม่สามารถใช้ = NULL ได้

ไวยากรณ์ (Syntax)

DELETE FROM yourTableName WHERE yourColumnName IS NULL;

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

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

mysql> CREATE TABLE removeNullRecordsDemo (
    -> Name VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.50 sec)

mysql> INSERT INTO removeNullRecordsDemo VALUES('John');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES(NULL);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES('Larry');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES(NULL);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES('David');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO removeNullRecordsDemo VALUES(NULL);
Query OK, 1 row affected (0.22 sec)

ข้อมูลก่อนลบ:

mysql> SELECT * FROM removeNullRecordsDemo;
+-------+
| Name  |
+-------+
| John  |
| NULL  |
| Larry |
| Bob   |
| NULL  |
| David |
| NULL  |
+-------+
7 rows in set (0.00 sec)

ลบแถวที่ Name เป็น NULL:

mysql> DELETE FROM removeNullRecordsDemo WHERE Name IS NULL;
Query OK, 3 rows affected (0.16 sec)

ผลลัพธ์หลังลบ:

mysql> SELECT * FROM removeNullRecordsDemo;
+-------+
| Name  |
+-------+
| John  |
| Larry |
| Bob   |
| David |
+-------+
4 rows in set (0.00 sec)

ข้อควรระวัง

  • ใช้ IS NULL เท่านั้น ห้ามใช้ = NULL (จะไม่ทำงาน)
  • คำสั่ง DELETE จะลบแถวทั้งแถว ไม่ใช่แค่ตั้งค่าคอลัมน์นั้นเป็น NULL
  • หากต้องการแค่ตั้งค่าเป็น NULL ให้ใช้ UPDATE table SET col = NULL WHERE ...
  • ควร Backup หรือทดสอบด้วย SELECT ก่อนลบจริง