Microsoft Access DB - 字段不相等

Microsoft Access DB - Where field not equal

我有这个查询:

SELECT Users.FirstName, Users.LastName, Users.UserEmail 
FROM Users 
WHERE Users.FirstName LIKE '%1%' OR 
      Users.LastName  LIKE '%1%' OR 
      Users.UserEmail LIKE '%a%' AND 
      Users.UserEmail <> 'a@a.a';

LIKE 中的内容是 'a' 结果我没有收到电子邮件 'a@a.a',但是如果与此电子邮件相关的名字或姓氏包含字符 1,我在结果中收到了这封电子邮件。

我的问题是为什么以及如何预防? 谢谢

您需要用括号括起您的 "or"。

SELECT Users.FirstName, Users.LastName, Users.UserEmail 
FROM Users 
WHERE
(
   Users.FirstName LIKE '%1%' OR 
      Users.LastName  LIKE '%1%' OR 
      Users.UserEmail LIKE '%a%'
)
 AND 
      Users.UserEmail <> 'a@a.a';

原因是因为只要满足第一个"or"条件,"not"部分就没有关系,因为它没有用括号分隔。