【问题标题】:Query not working when looking for null values on the where clause在 where 子句中查找空值时查询不起作用
【发布时间】:2013-04-18 01:50:54
【问题描述】:

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

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

有人知道怎么回事吗?谢谢

【问题讨论】:

    标签: mysql null where isnull


    【解决方案1】:

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

    WHERE COLLABORATORS.userid = 23 and FOLDER.parent IS NULL
    

    【讨论】:

      【解决方案2】:

      更改此查询

      WHERE FOLDER.parent = NULL
      

      WHERE FOLDER.parent IS NULL
      

      因为任何算术比较与NULL的结果也是NULL,你不能从这样的比较中得到任何有意义的结果。

      MySQL Manual

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-31
          相关资源
          最近更新 更多