Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Toán tử NULL-safe equal (<=>) trong MySQL và khác biệt với toán tử so sánh =

Toán tử NULL-safe equal <=> (tương đương IS NOT DISTINCT FROM chuẩn SQL) thực hiện so sánh bằng như = nhưng xử lý NULL khác biệt.

Khi cả hai toán hạng là NULL:

mysql> SELECT 50 <=> 50, NULL <=> NULL, 100 <=> NULL;
+-----------+---------------+--------------+
| 50 <=> 50 | NULL <=> NULL | 100 <=> NULL |
+-----------+---------------+--------------+
| 1         | 1             | 0            |
+-----------+---------------+--------------+

mysql> SELECT 50 = 50, NULL = NULL, 100 = NULL;
+---------+-------------+------------+
| 50 = 50 | NULL = NULL | 100 = NULL |
+---------+-------------+------------+
| 1       | NULL        | NULL       |
+---------+-------------+------------+

Khác biệt chính: NULL <=> NULL trả về 1 (true), trong khi NULL = NULL trả về NULL (unknown). Toán tử <=> xử lý NULL như giá trị thường.