使用 MySQL 检查空字段

2022-08-30 07:30:45

我写了一个查询来检查具有特定条件的用户,其中一个是他们有一个电子邮件地址。

我们的网站将允许用户拥有或没有电子邮件地址。

$aUsers=$this->readToArray('
 SELECT `userID` 
 FROM `users` 
 WHERE `userID` 
 IN(SELECT `userID`
         FROM `users_indvSettings`
  WHERE `indvSettingID`=5 AND `optionID`='.$time.')
  AND `email`!=""
 ');

这是在 SQL 中检查空字段的最佳方法吗?我刚刚尝试了“不是空的”,这仍然返回了一个用户记录,没有他们的电子邮件地址。

上面的查询有效,但出于好奇,我想知道我是否以正确的方式进行。


答案 1

空字段可以是空字符串或 .NULL

要同时处理这两个问题,请使用:

email > ''

如果您的表中有很多空的电子邮件记录(两种类型),则可以从访问中受益。range


答案 2

是的,你正在做的事情是正确的。您正在检查以确保电子邮件字段不是空字符串。NULL 表示缺少数据。空字符串是长度为 0 的空白字符串。""

您也可以添加空值检查

AND (email != "" OR email IS NOT NULL)

推荐