在where子句中查找空值时查询不起作用

时间:2013-04-18 01:50:55

标签: mysql null where isnull

我的查询完美无缺:

SELECT FOLDER.folderid, FOLDER.foldername
FROM FOLDER
INNER JOIN COLLABORATORS ON COLLABORATORS.folderid = FOLDER.folderid
WHERE COLLABORATORS.userid = 23

但是当我在where子句中添加它时:“和FOLDER.parent = NULL”它不起作用。完整的查询是:

SELECT FOLDER.folderid, FOLDER.foldername
FROM FOLDER
INNER JOIN COLLABORATORS ON COLLABORATORS.folderid = FOLDER.folderid
WHERE COLLABORATORS.userid = 23 and FOLDER.parent = NULL

有谁知道最近发生了什么?感谢

3 个答案:

答案 0 :(得分:3)

处理NULL时,您无法使用=<>,因为值未知,而是使用IS NULL或{{1 }},

IS NOT NULL

答案 1 :(得分:1)

更改此查询

WHERE FOLDER.parent = NULL

WHERE FOLDER.parent IS NULL
  

因为与NULL进行任何算术比较的结果也是NULL,所以无法从这种比较中获得任何有意义的结果。

MySQL Manual

答案 2 :(得分:0)

要从表中获取Null Records,需要使用[column]为null的位置。 查询中指定的条件FOLDER.parent = NULL,将查找&#39; NULL&#39;所需列中的字符串(单词)。 您可以通过插入&#39; NULL&#39;来检查上面一栏中的字符串(单词)。