Cần dùng hàm NULLIF() trong MySQL. Cú pháp:
SELECT NULLIF(yourCoumnName,' ') as anyVariableName from yourTableName;
Trong cú pháp trên, nếu so sánh chuỗi rỗng (' ') với chuỗi rỗng (' ') thì kết quả luôn là NULL. Nếu so sánh NULL với chuỗi rỗng cũng ra NULL.
Tạo bảng demo:
mysql> create table ConvertEmptyStringToNULL -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.63 sec)
Chèn dữ liệu:
mysql> insert into ConvertEmptyStringToNULL(Name) values('John'); Query OK, 1 row affected (0.22 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(''); Query OK, 1 row affected (0.15 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(NULL); Query OK, 1 row affected (0.14 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(''); Query OK, 1 row affected (0.21 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values('Carol'); Query OK, 1 row affected (0.13 sec) mysql> insert into ConvertEmptyStringToNULL(Name) values(NULL); Query OK, 1 row affected (0.70 sec)Hiển thị dữ liệu:
mysql> select *from ConvertEmptyStringToNULL;
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | | | 3 | NULL | | 4 | | | 5 | Carol | | 6 | NULL | +----+-------+ 6 rows in set (0.00 sec)
Truy vấn chuyển chuỗi rỗng thành NULL:
mysql> select NULLIF(Name,'') as EmptyStringNULL from ConvertEmptyStringToNULL;
+------------------+ | EmptyStringNULL | +------------------+ | John | | NULL | | NULL | | NULL | | Carol | | NULL | +------------------+ 6 rows in set (0.00 sec)