Что означает <=>
в MySQL и делает?
Что означает "<=>" в MySQL?
Ответ 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
Ответ 3
NULL-безопасный, равный оператору
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_equal-to
Ответ 4
<=>
- это так называемый NULL
-сервер-равномерный оператор.
SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1, 1, 0
SELECT 1 = 1, NULL = NULL, 1 = NULL;
-> 1, NULL, NULL
Ответ 5
Это то же самое, что и стандартное ключевое слово SQL DISTINCT
SELECT * FROM somewhere WHERE `address1` is not distinct from `address2`