Microsoft Access DB - 其中字段不相等

时间:2015-02-20 13:05:20

标签: sql select ms-access-2010

我有这个问题:

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 @ aa',但例如,如果与此电子邮件相关的名字或姓氏包含char 1,我在结果中收到了这封电子邮件。

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

1 个答案:

答案 0 :(得分:2)

您需要用括号包装&#34;或&#34;

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';

原因是因为第一个&#34;或&#34;条件满足,那么&#34;不是&#34;部分并不重要,因为它没有用括号分隔。