Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

các giá trị khác biệt của mysql không có chuỗi rỗng và NULL

Vấn đề duy nhất của bạn là bạn sử dụng OR thay vì AND.

Hãy xem xét trường hợp giá trị là NULL:

  • CON.EMAILADDRESS IS NOT NULL => SAI
  • CON.EMAILADDRESS != ' ' => KHÔNG ĐỦ

FALSE OR NULL => NULL. Vì tiêu chí không dẫn đến TRUE nên bạn không chọn NULL.

Và nếu giá trị là một chuỗi rỗng '', '' hoặc bất kỳ độ dài nào:

  • CON.EMAILADDRESS IS NOT NULL => ĐÚNG
  • CON.EMAILADDRESS != ' ' => SAI

TRUE HOẶC FALSE => ĐÚNG. Bạn chọn chuỗi trống.

Tôi cho rằng đây là điều khiến bạn bối rối:mặc dù đã sử dụng nhầm HOẶC thay vì VÀ bạn vẫn loại bỏ một số chuỗi trống, nhưng không phải tất cả.

Vì vậy:

WHERE CON.EMAILADDRESS IS NOT NULL AND CON.EMAILADDRESS != ' ';

Hoặc, dưới dạng bất kỳ chuỗi nào != '' không thể là NULL (NULL != '' => KHÔNG ĐỦ, không ĐÚNG), đơn giản là:

WHERE CON.EMAILADDRESS != '';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng trình kích hoạt để dừng chèn hoặc cập nhật

  2. Cách lưu trữ tệp trong cơ sở dữ liệu mysql bằng blob

  3. MySQL - tạo một hàm do người dùng xác định cho một loại tùy chỉnh

  4. nhập kết nối cơ sở dữ liệu của tôi với python

  5. Một truy vấn SQL để chọn cho đến khi SUM (users_count) đạt đến 1000