我目前正在编写应该查询具有多个 ID 的多个不同记录的代码。我试过了:
SELECT * FROM Items WHERE ID = ( 1, 2 )
SELECT * FROM Items WHERE ID = 1, 2
SELECT * FROM Items WHERE ID = '1, 2'
我究竟做错了什么?
用这个
SELECT * FROM Items WHERE ID = 1 or ID = 2;
或使用速记法
SELECT * FROM Items WHERE ID IN (1,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
你需要输入的是
SELECT * FROM Items WHERE ID IN (1,2)
注意IN 括号内的字符串值使用单引号 ('1','2')
使用IN
如下
SELECT * FROM Items WHERE ID IN (1, 2);
句法:
SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn)
在你的情况下:
SELECT * FROM Items WHERE ID IN (1, 2);
它也可以。您要查找的信息是大多数 SQL 语言的“IN”运算符(此处为 MySQL 示例)。
您正在做的是提供一系列值作为一个集合(IN 运算符的右侧),然后要求数据库带回您正在查询的列(IN 运算符的左侧)具有一个的记录集合中的值。
采用
select * from items where id in (1,2);