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"部分就没有关系,因为它没有用括号分隔。
我有这个查询:
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"部分就没有关系,因为它没有用括号分隔。