我需要一个匹配数组类型列的电子邮件列表的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);
答案 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