Có sự khác biệt giữa MySQLSự khác nhau giữa MySQL IS NOT NULL và! = ''
IF (myText IS NOT NULL) THEN
và
IF (myText != '') THEN
Có sự khác biệt giữa MySQLSự khác nhau giữa MySQL IS NOT NULL và! = ''
IF (myText IS NOT NULL) THEN
và
IF (myText != '') THEN
Có có một sự khác biệt lớn giữa một giá trị NULL
và một trống/trống giá trị.
Đây là one resource mô tả sự khác biệt.
Khi myText IS NULL
:
myText IS NOT NULL
đánh giá để FALSE
myText != ''
đánh giá để NULL
(trong đó chủ yếu cư xử giống như FALSE
sẽ trong trường hợp này cụ thể mà bạn đã viết)Tuy nhiên, bạn nên không có thói quen đối xử với họ như nhau, vì phần lớn thời gian họ sẽ hành xử khác nhau: Ví dụ:
Giả sử bạn có một bảng tbl
:
id text
1 NULL
2
3 abc
Lưu ý: 1 chứa một giá trị NULL
, và 2 chứa một chuỗi rỗng (''
).
Nếu bạn chạy các truy vấn sau đây:
SELECT * FROM tbl WHERE text != ''
... nó sẽ trở lại kỷ lục 3.
Nếu bạn chạy các truy vấn sau đây:
SELECT * FROM tbl WHERE text IS NOT NULL
... nó sẽ trả lại hồ sơ 2 và 3.
Có sự khác biệt.
Nói một cách đơn giản, myText IS NOT NULL chỉ định rằng myText đang có một số giá trị có thể là '' quá.
Ở đâu là myText! = '' chỉ định rằng nó trả về TRUE, nếu myText KHÔNG chứa một chuỗi trống.
Có sự khác biệt. Nếu giá trị mặc định của một cột là "NULL", thì nếu không có dữ liệu nào được thiết lập cho một trường, nó thực sự là rỗng. Tuy nhiên, nếu giá trị của một trường đã được cập nhật là '', nó không phải là NULL, thay vì nó là rỗng.
Xem tại đây để biết thêm thông tin Link