MySQL中的比较操做符<=>

对于=操做符,两个值被比较,结果是0(不相等)或者1(相等)。python

比较操做符<=>表示NULL安全的等价。这个比较操做符执行等价比较,和=操做符相似,可是若是两个操做数都是NULL,会返回1,而不是返回NULL;若是其中一个操做数是NULL,会返回0,而不是返回NULL。mysql

 

当参与比较的两个操做数均可能包含NULL,而你须要得到两个列的一个一致性结果的时候,<=>比较操做符就颇有用了。另一个用例是,对于prepared语句,例如:sql

... WHERE col_a <=> ? ...

这里的占位符多是标量或者NULL,并不须要对语句作任何修改。安全

 

<=>是MySQL特有的语法:blog

'a' IS NULL     ==> 'a' <=> NULL
'a' IS NOT NULL ==> NOT('a' <=> NULL)

  

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL

  

对于比较操做,(a,b)<=>(x,y)等价于:class

(a <=> x) AND (b <=> y)
相关文章
相关标签/搜索