我的电脑上安装了mysql。
我有一个表users
,其中一个字段为pointsRedeemed
。当我使用mysql workbench使用查询select * from users
查看记录并查看结果时,它会显示记录。
在这些记录中,我可以清楚地看到pointsRedeemed
正在显示null
。
但是当我像select * from users where pointsRedeemed=null
那样进行查询时,它会显示没有结果。我想要那些pointsRedeemed=null
的记录。如何获得这些记录?
答案 0 :(得分:6)
您无法使用等号(NULL
)运算符将列与=
值进行比较。相反,您需要使用IS NULL
或IS NOT NULL
。以下查询应该产生您期望的结果:
SELECT *
FROM users
WHERE pointsRedeemed IS NULL
有关更深入的解释,NULL
表示关系数据库中的未知值。因此,表达式pointsRedeemed = NULL
在语义上是说pointsRedeemed
等于未知的东西?这种比较的结果也是未知的,永远不会返回true或false。
答案 1 :(得分:0)
使用以下
SELECT * FROM users WHERE pointsRedeemed IS NULL