Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Microsoft Access数据库-其中字段不相等_Sql_Select_Ms Access 2010 - Fatal编程技术网

Sql Microsoft Access数据库-其中字段不相等

Sql Microsoft Access数据库-其中字段不相等,sql,select,ms-access-2010,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'; 选择Users.FirstName、Us

我有一个疑问:

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';
选择Users.FirstName、Users.LastName、Users.UserEmail
来自用户
其中Users.FirstName类似于“%1%”或
Users.LastName,如“%1%”或
Users.UserEmail,如“%a%”和
Users.UserEmail'a@a.a';
其中,LIKE中的内容是“a”“我没有收到电子邮件”a@a.a'因此,如果例如,与此电子邮件相关的名字或姓氏包含字符1,我将在结果中获得此电子邮件

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

您需要用括号将“或”括起来

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';
选择Users.FirstName、Users.LastName、Users.UserEmail
来自用户
哪里
(
Users.FirstName,如“%1%”或
Users.LastName,如“%1%”或
Users.UserEmail,如“%a%”
)
及
Users.UserEmail'a@a.a';
原因是,只要满足第一个“或”条件,那么“非”部分就无关紧要,因为它没有用括号分隔

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