Postgres 中是否有一种方法可以使用没有任何子查询的查询从表中获取具有特定 ID 的行列表。
Table
id value
---------
0 | 12
2 | 345
3 | Alan
4 | 0.345
5 | 232333.2
我想只使用一个查询来获取 ID 为 2、3 和 5 的行。
选择 * 从表 其中 id 在 (2, 3, 5);
你应该使用
IN
子句
IN 运算符允许您在 WHERE 子句中指定多个值。
SELECT * FROM Table WHERE id IN (2, 3, 5);
您可以使用
IN
运算符,如前面的答案所示。但是,如果您请求的 ID 列表可以为空,这将不起作用,因为IN ()
是语法错误。
如果你想用相同的查询处理空列表,你可以使用
ANY
函数:
SELECT * FROM "Table"
WHERE id = ANY(ARRAY[2, 3, 5]::int[])