MySQL - 检查两个值是否相等或两者都是NULL?

时间:2015-09-11 14:54:56

标签: mysql

如果我想比较两个值,我可以写:

SELECT * FROM table1
JOIN table2 ON table1.col = table2.col;

我注意到,如果table1.coltable2.col都是NULL,则无效。所以我更正后的查询如下所示:

SELECT * FROM table1
JOIN table2 ON 
  (table1.col = table2.col)
  OR
  (table1.col IS NULL AND table2.col IS NULL);

这是比较两个值的正确方法吗?有没有办法说两个值相等,如果它们都是NULL

1 个答案:

答案 0 :(得分:16)

比较NULL = NULL将返回NULL,但这不是真的,因此加入不会成功。您可以使用NULL safe operator< =>

SELECT * FROM table1
JOIN table2 ON table1.col <=> table2.col;