我是数据库新手,想知道是否可以使用类似于以下的语句:
SELECT * FROM Table Where Name = "abc" or "xyz" or "pqr";
我知道这不起作用,我需要在名称可能是其中任何一个的表中查找条目。
谢谢
我是数据库新手,想知道是否可以使用类似于以下的语句:
SELECT * FROM Table Where Name = "abc" or "xyz" or "pqr";
我知道这不起作用,我需要在名称可能是其中任何一个的表中查找条目。
谢谢
您必须再次使用列名,以便:
SELECT * FROM Table
Where Name = "abc"
OR Name = "xyz"
OR Name = "pqr";
但在这种情况下,最好做一个IN
.
SELECT * FROM Table
Where Name IN ("abc","xyz","pqr");
您还没有指定关系数据库(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');
AND
与and一起使用的正确语法OR
是:
SELECT *
FROM Table
Where Name = "abc"
or
Name = "xyz"
or
Name = "pqr"
请注意,您需要限定每个子句的列名。
虽然你可以使用:
SELECT *
FROM Table
Where Name IN ("abc", "xyz", "pqr");
您收到错误的原因是 OR 运算符的每一侧都必须是计算结果为布尔值(真或假)的表达式。
这是您声明的更正版本:
Select * From Table Where Name = 'abc' or name = 'xyz' or name = 'pqr'
您也可以使用 IN 子句编写它:
Select * from Table Where Name in ('abc', 'xyz', 'pqr')
SELECT * FROM Table Where Name IN ('abc','yz','pqr')
SELECT * FROM TABLE WHERE Field IN ('abc','xyz');
或者
SELECT * FROM TABLE WHERE Field = 'abc' OR Field = 'xyz';