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

Toán tử này <=> trong MySQL là gì?

TL; DR

Đó là NULL an toàn bình đẳng nhà điều hành.

Giống như = thông thường toán tử, hai giá trị được so sánh và kết quả là 0 (không bằng) hoặc 1 (bình đẳng); nói cách khác:'a' <=> 'b' sản lượng 0'a' <=> 'a' sản lượng 1 .

Không giống như = thông thường toán tử, các giá trị của NULL không có ý nghĩa đặc biệt và vì vậy nó không bao giờ tạo ra NULL như một kết quả có thể xảy ra; vì vậy:'a' <=> NULL sản lượng 0NULL <=> NULL sản lượng 1 .

Tính hữu ích

Điều này có thể hữu ích khi cả hai toán hạng có thể chứa NULL và bạn cần một kết quả so sánh nhất quán giữa hai cột.

Một trường hợp sử dụng khác là với các câu lệnh được chuẩn bị sẵn, ví dụ:

... WHERE col_a <=> ? ...

Ở đây, trình giữ chỗ có thể là một giá trị vô hướng hoặc NULL mà không cần phải thay đổi bất kỳ điều gì về truy vấn.

Các toán tử liên quan

Bên cạnh đó <=> cũng có hai toán tử khác có thể được sử dụng để so sánh với NULL , cụ thể là IS NULLIS NOT NULL; chúng là một phần của tiêu chuẩn ANSI và do đó được hỗ trợ trên các cơ sở dữ liệu khác, không giống như <=> , dành riêng cho MySQL.

Bạn có thể coi chúng là các chuyên ngành của <=> của MySQL :

'a' IS NULL     ==> 'a' <=> NULL
'a' IS NOT NULL ==> NOT('a' <=> NULL)

Dựa trên điều này, truy vấn (phân đoạn) cụ thể của bạn có thể được chuyển đổi thành truy vấn di động hơn:

WHERE p.name IS NULL

Hỗ trợ

Tiêu chuẩn SQL:2003 đã giới thiệu một vị từ cho điều này, hoạt động chính xác giống như <=> của MySQL toán tử, ở dạng sau:

IS [NOT] DISTINCT FROM 

Phần sau được hỗ trợ trên toàn cầu, nhưng tương đối phức tạp:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nodejs bày tỏ và hứa sẽ không làm những gì tôi mong đợi

  2. Cách hoạt động của hàm RTRIM () trong MySQL

  3. Độ dài tối đa cho văn bản kiểu MySQL

  4. Quản lý tài khoản người dùng, vai trò, quyền, xác thực PHP và MySQL - Phần 4

  5. Người dùng hiển thị MySQL