Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL có thể tự động chuyển đổi chuỗi trống thành NULL không?

Bạn cần sử dụng hàm NULLIF () từ MySQL. Cú pháp như sau:

 CHỌN NULLIF (yourCoumnName, ’’) làm anyVariableName từ yourTableName; 

Trong cú pháp trên, nếu bạn so sánh chuỗi rỗng (‘‘) với chuỗi rỗng (‘‘), kết quả sẽ luôn là NULL. Tuy nhiên, nếu bạn so sánh với NULL thành chuỗi rỗng (‘‘) thì kết quả cũng sẽ luôn là NULL.

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:

 mysql> tạo bảng ConvertEmptyStringToNULL -> (-> Id int NOT NULL AUTO_INCREMENT, -> Name varchar (20), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,63 giây)  

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau:

 mysql> chèn vào các giá trị ConvertEmptyStringToNULL (Tên) ('John'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,22 giây) mysql> chèn vào giá trị ConvertEmptyStringToNULL (Tên) (''); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị ConvertEmptyStringToNULL (Tên) (NULL); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị ConvertEmptyStringToNULL (Tên) (''); Truy vấn OK, 1 hàng bị ảnh hưởng (0,21 giây) mysql> chèn vào giá trị ConvertEmptyStringToNULL (Tên) ('Carol'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị ConvertEmptyStringToNULL (Tên) (NULL); Truy vấn OK, 1 hàng bị ảnh hưởng (0,70 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:

 mysql> select * từ ConvertEmptyStringToNULL; 

Sau đây là kết quả:

 + ---- + ------- + | Id | Tên | + ---- + ------- + | 1 | John || 2 | || 3 | NULL || 4 | || 5 | Carol || 6 | NULL | + ---- + ------- + 6 hàng trong bộ (0,00 giây) 

Đây là truy vấn để chuyển đổi chuỗi trống thành NULL:

 mysql> chọn NULLIF (Tên, '') làm EmptyStringNULL từ ConvertEmptyStringToNULL; 

Sau đây là kết quả hiển thị NULL thay cho chuỗi trống:

 + ------------------ + | EmptyStringNULL | + ------------------ + | John || NULL || NULL || NULL || Carol || NULL | + ------------------ + 6 hàng trong bộ (0,00 giây)