1

我得到了这个完美的查询:

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

但是当我在 where 子句中添加它时:“and 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

有谁知道发生了什么事?谢谢

4

3 回答 3

3

处理时NULL,您不能使用=or<>因为值是未知的,而是使用IS NULLor IS NOT NULL,

WHERE COLLABORATORS.userid = 23 and FOLDER.parent IS NULL
于 2013-04-18T01:52:35.507 回答
1

更改此查询

WHERE FOLDER.parent = NULL

WHERE FOLDER.parent IS NULL

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

MySQL 手册

于 2013-04-18T01:52:35.320 回答
0

要从表中获取空记录,需要使用 where [column] 为空。查询 FOLDER.parent = NULL 中指定的条件将在所需列中查找“NULL”字符串(字)。您可以通过在上列中插入“NULL”字符串(单词)来检查这一点。

于 2013-04-18T12:21:20.357 回答