当我尝试选择没有电子邮件的用户记录时,我的查询没有给出正确的结果:
select * from users where email=''
和:
select * from users where email=NULL
两者都给出不同的结果,但都没有给出正确的结果。我怎样才能得到正确的结果?
它是 NULL 或 IS NOT NULL。
select * from users where email IS NULL
根据用户如何“没有电子邮件”,您应该将该字段的默认值设置为 NULL 并使该字段可以为空。然后,如果在该表中执行插入新记录,则电子邮件将为 NULL 而不是空的。
或者,如果您已经遇到不匹配的表,请尝试以下操作:
select * from users where LENGTH(COALESCE(email,'')) = 0
这将为您提供所有具有“空”值的记录email
,将 NULL 视为空。
空不等于空。
你需要指定IS NULL
Mysql对待它们两者不同
email=''
检查空白值并email=NULL
检查空值,这就是为什么它们都给出不同结果的原因。
您应该使用is NULL
它来检查空白和空值。
SELECT * FROM users WHERE email IS NULL