Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | |3 |零| 3 |零| |4 |零| 3 |零| |3 |零| 4 |零| |4 |零| 4 |零| | 5 | 6 | 5 | 6 | |_Mysql_Sql_Operators_Spaceship Operator - Fatal编程技术网

Mysql 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | |3 |零| 3 |零| |4 |零| 3 |零| |3 |零| 4 |零| |4 |零| 4 |零| | 5 | 6 | 5 | 6 | |

Mysql 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | |3 |零| 3 |零| |4 |零| 3 |零| |3 |零| 4 |零| |4 |零| 4 |零| | 5 | 6 | 5 | 6 | |,mysql,sql,operators,spaceship-operator,Mysql,Sql,Operators,Spaceship Operator,1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | |3 |零| 3 |零| |4 |零| 3 |零| |3 |零| 4 |零| |4 |零| 4 |零| | 5 | 6 | 5 | 6 | | 6 | 7 | 6 | 7 | @zllalani一点也不接受两个操作数,而为(非)NULL只接受一个操作数;差别很大。。。在这方面,它与SQL标准中的=本身一样有用。@zllalani为空和不为空是一个特定于MySQL的扩展

1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | |3 |零| 3 |零| |4 |零| 3 |零| |3 |零| 4 |零| |4 |零| 4 |零| | 5 | 6 | 5 | 6 | | 6 | 7 | 6 | 7 |
@zllalani一点也不
接受两个操作数,而
为(非)NULL
只接受一个操作数;差别很大。。。在这方面,它与SQL标准中的
=
本身一样有用。@zllalani
为空
不为空
是一个特定于MySQL的扩展。因此,像
一样,它与
操作符没有区别。想知道MySQL是否可以在上面使用索引…@Pacerier不,
ab
的反比是
NOT(ab)
@zllalani,太空船操作符实际上非常有用。在“普通”编程语言和数学中,它与
=
一样有用
a=b
要么是
true
要么是
false
,除了在SQL领域,他们设法洗脑了它也可以是
null
,而对其他人来说,它就是没有任何意义。事实上,如果
null==null
除了给你提供
true
以外的东西,整个Java、C#、Javascript、PHP等领域都会反抗。甚至有些东西也知道,
undefined==undefined
=
true
。宇宙飞船
operator@Mhd.Tahawi,我们是一个允许我们直接搜索运营商的谷歌。@Pacerier-我在大约5年前发现了这一点(不知道是否有更好的选择)
NOT
不是运营商,它不适用于
op1 op2
的结果@Jack:-是的,你是正确的。更新了答案!添加了这一点以便说明一点:)所以我想没有
operator@kip:没有!更正:
应被称为,并且
=
NULL
运算符。
WHERE p.name <=> NULL
SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;
SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL
 SELECT NULL <=> NULL -- 1
 SELECT TRUE <=> TRUE -- 1
 SELECT col1 <=> col2 FROM myTable
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL
SELECT NULL != NULL,         //--Result is NULL
   NOT NULL <=> NULL,        //--Result is 0
   NULL IS NOT NULL;         //--Result is 0
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL
... WHERE col_a <=> ? ...
'a' IS NULL     ==> 'a' <=> NULL
'a' IS NOT NULL ==> NOT('a' <=> NULL)
WHERE p.name IS NULL
CASE
    WHEN a IS NULL AND b IS NULL THEN 1 -- both operands null then 1
    WHEN a IS NULL OR  b IS NULL THEN 0 -- one operand is null then 0
    ELSE a = b                          -- else behave like normal = operator
END
SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
1, 1, 0
SELECT 1 = 1, NULL = NULL, 1 = NULL;
1, NULL, NULL
mysql> SELECT * FROM t JOIN t2 WHERE t2.ids = t.ids;
+----+------+----+------+
| id | ids  | id | ids  |
+----+------+----+------+
|  1 |    1 |  1 |    1 |
|  2 |    2 |  2 |    2 |
|  5 |    6 |  5 |    6 |
|  6 |    7 |  6 |    7 |
+----+------+----+------+
4 rows in set (0.00 sec)

mysql> SELECT * FROM t JOIN t2 WHERE t2.ids <=> t.ids;
+----+------+----+------+
| id | ids  | id | ids  |
+----+------+----+------+
|  1 |    1 |  1 |    1 |
|  2 |    2 |  2 |    2 |
|  3 | NULL |  3 | NULL |
|  4 | NULL |  3 | NULL |
|  3 | NULL |  4 | NULL |
|  4 | NULL |  4 | NULL |
|  5 |    6 |  5 |    6 |
|  6 |    7 |  6 |    7 |