PostgreSQL查询任何数组中的数组

时间:2014-07-09 22:11:57

标签: sql arrays postgresql

我需要一个匹配数组类型列的电子邮件列表的PostgreSQL命令。

我的专栏被声明为:

emails character varying(255)[] DEFAULT '{}'::character varying[]

我需要使用众多潜在匹配中的一个来搜索它。 通常情况下,我使用IN运算符进行搜索,如下所示:SELECT * FROM identities WHERE emails IN ['test@test.com'];但我似乎找不到在搜索数组时如何生成IN查询的示例

理想情况下它是这样的(显然不起作用):

SELECT * FROM identities WHERE ('jaylan.jones@runte.name','qwe@qwe.com') IN ANY (emails);

1 个答案:

答案 0 :(得分:3)

重叠&&运算符将检查是否存在共同的元素

SELECT * 
FROM identities 
WHERE array['jaylan.jones@runte.name','qwe@qwe.com']::varchar[] && emails;

http://www.postgresql.org/docs/current/static/functions-array.html#ARRAY-OPERATORS-TABLE