MySQL datetime NULL问题,'='和'!='返回0行

时间:2014-02-23 15:47:30

标签: java mysql phpmyadmin

我有一个充满值的表linksbaselastvisited是datetime,到处都是NULL(允许空值)。我在phpmyadmin中运行查询(同样通过Java)并且返回空结果:

SELECT `id` FROM `linksbase` WHERE `lastvisited` = NULL

更重要的是,如果我跑

SELECT `id` FROM `linksbase` WHERE `lastvisited` != NULL 

我也得到了很好的结果。 如果我跑

  

SELECT * FROM linksbase WHERE 1

我得到的行列表应该是(因此,它正在工作)。

查询有什么问题以及为什么两个相互排除的查询返回0行。

3 个答案:

答案 0 :(得分:3)

你应该使用

SELECT `id` FROM `linksbase` WHERE `lastvisited` IS NULL

SELECT `id` FROM `linksbase` WHERE `lastvisited` IS NOT NULL

答案 1 :(得分:3)

您应该使用IS NULLIS NOT NULL,而不是将NULL与!!=运算符进行比较。那些永远是假的。

答案 2 :(得分:0)

如果您有空列而不是null,请考虑使用此

 SELECT `id` FROM `linksbase` WHERE  `lastvisited` = ''  OR `lastvisited` IS NULL

这将查找空列的空列和列。