1

当我尝试选择没有电子邮件的用户记录时,我的查询没有给出正确的结果:

select * from users where email=''

和:

select * from users where email=NULL

两者都给出不同的结果,但都没有给出正确的结果。我怎样才能得到正确的结果?

4

3 回答 3

4

它是 NULL 或 IS NOT NULL。

select * from users where email IS NULL

根据用户如何“没有电子邮件”,您应该将该字段的默认值设置为 NULL 并使该字段可以为空。然后,如果在该表中执行插入新记录,则电子邮件将为 NULL 而不是空的。

或者,如果您已经遇到不匹配的表,请尝试以下操作:

select * from users where LENGTH(COALESCE(email,'')) = 0

这将为您提供所有具有“空”值的记录email,将 NULL 视为空。

于 2012-04-06T17:05:42.630 回答
1

空不等于空。

你需要指定IS NULL

于 2012-04-06T17:07:34.677 回答
0

Mysql对待它们两者不同

email=''检查空白值并email=NULL检查空值,这就是为什么它们都给出不同结果的原因。

您应该使用is NULL它来检查空白和空值。

SELECT *  FROM users WHERE email IS NULL
于 2012-04-06T17:07:30.290 回答