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