Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cập nhật chỉ ô trống thành NULL trong MySQL với NULLIF()

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.