1

我目前正在编写应该查询具有多个 ID 的多个不同记录的代码。我试过了:

SELECT * FROM Items WHERE ID = ( 1, 2 )

SELECT * FROM Items WHERE ID = 1, 2

SELECT * FROM Items WHERE ID = '1, 2'

我究竟做错了什么?

4

7 回答 7

2

用这个

SELECT * FROM Items WHERE ID = 1 or ID = 2;

或使用速记法

SELECT * FROM Items WHERE ID IN (1,2);
于 2013-03-28T05:34:50.933 回答
2

IN如果您要与多个值进行比较,请使用。

SELECT * FROM Items WHERE ID IN (1, 2)

这对于

SELECT * FROM Items WHERE ID = 1 OR ID = 2

对于此语句:“...查询具有多个 ID 的多个不同记录”,我认为您想搜索具有多个 ID 的组,如果是这种情况,则称为问题Relational Division

SELECT groupColumn
FROM   Items 
WHERE  ID IN (1, 2)
GROUP  BY groupColumn
HAVING COUNT(*) = 2
于 2013-03-28T05:35:22.630 回答
2

你需要输入的是

SELECT * FROM Items WHERE ID IN (1,2)

注意IN 括号内的字符串值使用单引号 ('1','2')

于 2013-03-28T05:35:31.973 回答
2

使用IN如下

SELECT * FROM Items WHERE ID IN (1, 2);
于 2013-03-28T05:36:25.460 回答
2

句法:

SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn)

在你的情况下:

SELECT * FROM Items WHERE ID IN (1, 2);
于 2013-03-28T05:37:32.183 回答
2

它也可以。您要查找的信息是大多数 SQL 语言的“IN”运算符(此处为 MySQL 示例)。

您正在做的是提供一系列值作为一个集合(IN 运算符的右侧),然后要求数据库带回您正在查询的列(IN 运算符的左侧)具有一个的记录集合中的值。

于 2013-03-28T06:04:35.323 回答
2

采用

select * from items where id in (1,2);
于 2013-03-28T07:03:23.733 回答