有可能
任何
SELECt myindex, myname, myadressFROM mytableWHERe myindex = ANY ($my_array)
整数数组示例:
...WHERe myindex = ANY ('{1,3,5,6,9}'::int[])有关详细信息,请
ANY参见手册。
在
也有用于相同目的的SQL
IN()表达式。
PostgreSQl在其当前实现中将其转换为
= ANY (array)内部执行之前,因此可以想象它会慢一些。
加入 长 列表的示例(根据评论):
JOIN到VALUES表达式
WITH x(myindex) AS ( VALUES (1),(3),(5),(6),(9) )SELECt myindex, myname, myadressFROM mytableJOIN x USING (myindex)
我在示例中使用CTE(这是可选的,也可以是子查询)。为此,您需要PostgreSQL 8.4或更高版本。
关于的手册
VALUES。
联接到未嵌套的数组
或者,您可以
unnest()使用数组并
JOIN对其进行处理:
SELECt myindex, myname, myadressFROM mytableJOIN (SELECT unnest('{1,3,5,6,9}'::int[]) AS myindex) x USING (myindex)这些方法中的每一种在性能上均 远胜 于针对每个值运行单独的查询。



