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

Xử lý chuỗi rỗng như NULL trong MySQL (UPDATE SET NULL WHERE blank)

Cập nhật cột: đặt thành NULL nếu giá trị là chuỗi rỗng '' hoặc chỉ chứa khoảng trắng.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1362 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(40)
);

Chèn dữ liệu (có rỗng, NULL):

mysql> INSERT INTO DemoTable1362(ClientName) VALUES('Chris'), (' '), ('Bob'), (' '), ('David'), (NULL);

Xem dữ liệu (hàng 2,4 là space, hàng 6 là NULL):

mysql> SELECT * FROM DemoTable1362;
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 1        | Chris      |
| 2        |            |
| 3        | Bob        |
| 4        |            |
| 5        | David      |
| 6        | NULL       |
+----------+------------+

Chuyển chuỗi rỗng/space thành NULL:

mysql> UPDATE DemoTable1362
    SET ClientName = NULL
    WHERE ClientName = '' OR LENGTH(TRIM(ClientName)) = 0;

Kết quả (hàng 2,4 thành NULL):

mysql> SELECT * FROM DemoTable1362;
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 1        | Chris      |
| 2        | NULL       |
| 3        | Bob        |
| 4        | NULL       |
| 5        | David      |
| 6        | NULL       |
+----------+------------+

Giải thích điều kiện:

  • ClientName = '': bắt chuỗi rỗng hoàn toàn.
  • LENGTH(TRIM(ClientName)) = 0: bắt chuỗi chỉ chứa khoảng trắng (space, tab, newline...).
  • Kết hợp OR để xử lý cả 2 trường hợp.

Best practice: Thiết kế schema NOT NULL DEFAULT '' hoặc NULL nhất quán, tránh mix rỗng/NULL. Dùng COALESCE(TRIM(cot), 'default') khi SELECT.