10
Postgres的一个数组的数据类型,在这种情况下,数字数组:Postgres的 - 比较两个数组
CREATE TABLE sal_emp (name text, pay_by_quarter integer[]);
INSERT INTO sal_emp VALUES ('one', '{1,2,3}');
INSERT INTO sal_emp VALUES ('two', '{4,5,6}');
INSERT INTO sal_emp VALUES ('three', '{2,4,6}');
SELECT * FROM sal_emp;
Result:
one, {1,2,3}
two, {4,5,6}
three, {2,4,6}
从我可以告诉,你可以按照如下只能查询一个数组:
SELECT * FROM sal_emp WHERE 4=ANY(pay_by_quarter);
SELECT * FROM sal_emp WHERE ARRAY[4,5,6]=pay_by_quarter;
这意味着你可以选择一个数组中包含单个参数匹配的行,或者如果整个数组匹配一个数组参数。
我需要选择行的数组中的任何成员与参数数组的任何成员匹配的行 - 有点像'IN',但我不知道如何。我尝试了以下两种方法,但既没有工作:
SELECT * from sal_emp WHERE ARRAY[4,5,6]=ANY(pay_by_quarter);
SELECT * from sal_emp WHERE ANY(pay_by_quarter) IN (4,5,6);
我想我可以做一些与数组转换为一个字符串,但听起来像解决贫穷..
什么想法?