對於=操做符,兩個值被比較,結果是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)