我有一个充满值的表linksbase
。 lastvisited
是datetime,到处都是NULL(允许空值)。我在phpmyadmin中运行查询(同样通过Java)并且返回空结果:
SELECT `id` FROM `linksbase` WHERE `lastvisited` = NULL
更重要的是,如果我跑
SELECT `id` FROM `linksbase` WHERE `lastvisited` != NULL
我也得到了很好的结果。 如果我跑
SELECT * FROM
linksbase
WHERE 1
我得到的行列表应该是(因此,它正在工作)。
查询有什么问题以及为什么两个相互排除的查询返回0行。
答案 0 :(得分:3)
你应该使用
SELECT `id` FROM `linksbase` WHERE `lastvisited` IS NULL
和
SELECT `id` FROM `linksbase` WHERE `lastvisited` IS NOT NULL
答案 1 :(得分:3)
您应该使用IS NULL
或IS NOT NULL
,而不是将NULL与!
或!=
运算符进行比较。那些永远是假的。
答案 2 :(得分:0)
如果您有空列而不是null,请考虑使用此
SELECT `id` FROM `linksbase` WHERE `lastvisited` = '' OR `lastvisited` IS NULL
这将查找空列的空列和列。