Dùng NULLIF(cot, ''): trả về NULL nếu cột bằng chuỗi rỗng, ngược lại giữ nguyên giá trị. Tạo bảng:
mysql> CREATE TABLE DemoTable (Name VARCHAR(50)); Query OK, 0 rows affected (1.73 sec)
Chèn dữ liệu (có chuỗi rỗng):
mysql> INSERT INTO DemoTable VALUES('Mike'); Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable VALUES(''); Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES('David'); Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable VALUES(''); Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('Mike'); Query OK, 1 row affected (0.15 sec)
Hiển thị dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả:
+-------+ | Name | +-------+ | Mike | | | | David | | | | Mike | +-------+ 5 rows in set (0.00 sec)
Cập nhật: chỉ chuỗi rỗng thành NULL, các giá trị khác không đổi:
mysql> UPDATE DemoTable SET Name = NULLIF(Name, ''); Query OK, 2 rows affected (0.19 sec)
Kiểm tra lại:
mysql> SELECT * FROM DemoTable;
Kết quả:
+-------+ | Name | +-------+ | Mike | | NULL | | David | | NULL | | Mike | +-------+ 5 rows in set (0.00 sec)
Ưu điểm: An toàn hơn WHERE LENGTH(Name)=0 vì không ảnh hưởng hàng đã là NULL.