-2

我是数据库新手,想知道是否可以使用类似于以下的语句:

SELECT * FROM Table Where Name = "abc" or "xyz" or "pqr"; 

我知道这不起作用,我需要在名称可能是其中任何一个的表中查找条目。

谢谢

4

6 回答 6

2

您必须再次使用列名,以便:

SELECT * FROM Table 
Where Name = "abc" 
OR Name = "xyz" 
OR Name = "pqr";

但在这种情况下,最好做一个IN.

SELECT * FROM Table 
Where Name IN ("abc","xyz","pqr");
于 2013-01-21T16:16:37.127 回答
2

您还没有指定关系数据库(SQL Server、Oracle、MySQL 等),但每次都需要指定列名,如下所示:

SELECT * FROM Table 
Where Name = 'abc' or Name = 'xyz' or Name = 'pqr'; 

IN但是,使用语句编写它会更有效:

SELECT * FROM Table 
Where Name IN ('abc', 'xyz', 'pqr'); 
于 2013-01-21T16:16:53.260 回答
1

AND与and一起使用的正确语法OR是:

SELECT * 
FROM Table 
Where Name = "abc" 
  or 
      Name = "xyz" 
  or 
      Name = "pqr"

请注意,您需要限定每个子句的列名。

虽然你可以使用:

SELECT * 
FROM Table 
Where Name IN ("abc", "xyz", "pqr");
于 2013-01-21T16:17:35.940 回答
0

您收到错误的原因是 OR 运算符的每一侧都必须是计算结果为布尔值(真或假)的表达式。

这是您声明的更正版本:

Select * From Table Where Name = 'abc' or name = 'xyz' or name = 'pqr'

您也可以使用 IN 子句编写它:

Select * from Table Where Name in ('abc', 'xyz', 'pqr')
于 2013-01-21T16:24:56.860 回答
0
SELECT * FROM Table Where Name IN ('abc','yz','pqr')
于 2013-01-21T16:16:12.730 回答
0
SELECT * FROM TABLE WHERE Field IN ('abc','xyz');

或者

SELECT * FROM TABLE WHERE Field = 'abc' OR Field = 'xyz';
于 2013-01-21T16:16:27.623 回答