如何仅通过一次查询从表中获取具有特定 ID 的多行?

问题描述 投票:0回答:3

Postgres 中是否有一种方法可以使用没有任何子查询的查询从表中获取具有特定 ID 的行列表。

Table
id  value
---------
0 | 12
2 | 345
3 | Alan
4 | 0.345
5 | 232333.2

我想只使用一个查询来获取 ID 为 2、3 和 5 的行。

sql postgresql postgresql-9.5
3个回答
0
投票

选择 * 从表 其中 id 在 (2, 3, 5);


0
投票

你应该使用

IN
子句

IN 运算符允许您在 WHERE 子句中指定多个值。

SELECT * FROM Table WHERE id IN (2, 3, 5);

0
投票

您可以使用

IN
运算符,如前面的答案所示。但是,如果您请求的 ID 列表可以为空,这将不起作用,因为
IN ()
是语法错误。

如果你想用相同的查询处理空列表,你可以使用

ANY
函数:

SELECT * FROM "Table"
WHERE id = ANY(ARRAY[2, 3, 5]::int[])
© www.soinside.com 2019 - 2024. All rights reserved.