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