對於=操作符,兩個值被比較,結果是0(不相等)或者1(相等)。
比較操作符<=>表示NULL安全的等價。這個比較操作符執行等價比較,和=操作符類似,但是如果兩個操作數都是NULL,會返回1,而不是返回NULL;如果其中一個操作數是NULL,會返回0,而不是返回NULL。
當參與比較的兩個操作數都可能包含NULL,而你需要獲得兩個列的一個一致性結果的時候,<=>比較操作符就很有用了。另外一個用例是,對於prepared語句,例如:
... WHERE col_a <=> ? ...
這里的占位符可能是標量或者NULL,並不需要對語句做任何修改。
<=>是MySQL特有的語法:
'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)等價於:
(a <=> x) AND (b <=> y)