2010-06-17 31 views

Trả lời

11

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.

2

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.

1

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

Các vấn đề liên quan