Подтвердить что ты не робот

Что означает "<=>" в MySQL?

Что означает <=> в MySQL и делает?

4b9b3361

Ответ 1

В руководстве указано все:

NULL-безопасно. Этот оператор выполняет сравнение равенства оператор =, но возвращает 1 скорее чем NULL, если оба операнда NULL, и 0 вместо NULL, если один операнд имеет значение NULL.

mysql> select NULL <=> NULL;
+---------------+
| NULL <=> NULL |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

mysql> select NULL = NULL;
+-------------+
| NULL = NULL |
+-------------+
|        NULL |
+-------------+
1 row in set (0.00 sec)

mysql> select NULL <=> 1;
+------------+
| NULL <=> 1 |
+------------+
|          0 |
+------------+
1 row in set (0.00 sec)

mysql> select NULL = 1;
+----------+
| NULL = 1 |
+----------+
|     NULL |
+----------+
1 row in set (0.00 sec)

mysql> 

Ответ 2

Это NULL-безопасный равный оператор.

Разница между <= > и = заключается в том, что один или оба операнда являются значениями NULL. Например:

NULL <=> NULL gives True
NULL = NULL   gives NULL

Вот полная таблица для сравнения <=> значений 1, 2 и NULL:

     |  1      2    NULL
-----+-------------------
1    | True   False False
2    | False  True  False
NULL | False  False True

Сравните с обычным оператором равенства:

     |  1      2    NULL
-----+-------------------
1    | True   False NULL
2    | False  True  NULL
NULL | NULL   NULL  NULL

Ответ 5

Это то же самое, что и стандартное ключевое слово SQL DISTINCT

SELECT * FROM somewhere WHERE `address1` is not distinct from `address2`