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

Tại sao null <> null =null trong mysql

Bởi vì bất kỳ toán tử so sánh nào trên NULL xuất hiện trong bộ lọc sql nên (và hiện) làm cho hàng không được chọn.

Bạn nên sử dụng toán tử an toàn rỗng <=> để so sánh với cột chứa NULL các giá trị và NOT NULL khác giá trị nhưng <=> sẽ trả về 1 khi cả hai toán hạng là NULL bởi vì NULL không bao giờ được coi là bằng với NULL .

Đây là một ví dụ về tình huống mà toán tử null safe rất hữu ích:

Bạn có một bảng:

Phones
----
Number
CountryCode (can be NULL) 

Và bạn muốn chọn tất cả các số điện thoại không đến từ Tây Ban Nha (mã quốc gia 34). Lần thử đầu tiên thường là:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Nhưng bạn nhận thấy rằng có những điện thoại không có mã quốc gia (giá trị NULL) không được liệt kê và bạn muốn đưa chúng vào kết quả của mình vì chúng không đến từ Tây Ban Nha:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. phân loại tự nhiên mysql

  2. Mẫu kết nối cơ sở dữ liệu PHP singleton

  3. Truy vấn để tìm các bài đăng có tập hợp thẻ chính xác (mối quan hệ nhiều-nhiều)

  4. Chèn dữ liệu bằng mysqli

  5. cách sử dụng (useUnicode =yes characterEncoding =UTF-8) với DBCP