Để xóa hoàn toàn các hàng có giá trị NULL ở một cột, dùng câu lệnh DELETE với điều kiện IS NULL.
Cú pháp
DELETE FROM yourTableName WHERE yourColumnName IS NULL;
Ví dụ minh họa
Tạo bảng và chèn dữ liệu có NULL:
CREATE TABLE removeNullRecordsDemo (
Name VARCHAR(100)
);
INSERT INTO removeNullRecordsDemo VALUES ('John');
INSERT INTO removeNullRecordsDemo VALUES (NULL);
INSERT INTO removeNullRecordsDemo VALUES ('Larry');
INSERT INTO removeNullRecordsDemo VALUES ('Bob');
INSERT INTO removeNullRecordsDemo VALUES (NULL);
INSERT INTO removeNullRecordsDemo VALUES ('David');
INSERT INTO removeNullRecordsDemo VALUES (NULL);
Dữ liệu ban đầu (7 hàng, 3 hàng NULL):
+-------+ | Name | +-------+ | John | | NULL | | Larry | | Bob | | NULL | | David | | NULL | +-------+
Xóa các hàng NULL:
DELETE FROM removeNullRecordsDemo WHERE Name IS NULL;
Kết quả (còn 4 hàng):
+-------+ | Name | +-------+ | John | | Larry | | Bob | | David | +-------+
Lưu ý quan trọng:
- Luôn dùng
IS NULL, không dùng= NULL(vìNULL = NULLtrả về UNKNOWN, không phải TRUE). - Câu lệnh
DELETEvĩnh viễn xóa dữ liệu. Hãy cân nhắc dùngSELECTkiểm tra trước, hoặc thêmWHEREchi tiết hơn để tránh xóa nhầm. - Nếu chỉ muốn "ẩn" NULL khi hiển thị, dùng
COALESCE()hoặcIFNULL()trongSELECTthay vì xóa.