Postgresql 带select in条件的postgres数组字段

Postgresql 带select in条件的postgres数组字段,postgresql,Postgresql,我有一个POSTGRES字段,有两个字段-整数数组字段和整数字段 CREATE TABLE test.public.polls ( "id" serial NOT NULL, field_1 _int4, field_2 int4 NOT NULL, PRIMARY KEY ("id") ); 这些值是 1现在我需要检查字段值{1,2,3}是否在字段_1中 select * from test.public.polls where field_1 = array

我有一个POSTGRES字段,有两个字段-整数数组字段和整数字段

CREATE TABLE test.public.polls (
    "id" serial NOT NULL,
    field_1 _int4,
    field_2 int4 NOT NULL,
    PRIMARY KEY ("id")
);
这些值是

1现在我需要检查字段值{1,2,3}是否在字段_1中

select * from test.public.polls
where field_1 = array(id)
类似这样的事情-

select * from test.public.polls
where field_1 = ANY ('{1,2,3}'::int[])
但这是一个错误

operator does not exist: integer[] = integer
2需要检查字段_1中是否有id值={2,3,4}

select * from test.public.polls
where field_1 = array(id)
不确定应该使用什么语法。

使用&&

选择* 民意测验 其中{1,2,3}和&field_1 这里有一个用法&&

选择* 民意测验 其中{1,2,3}和&field_1 这是一个

,因为您的字段_1似乎是一个数组,那么以下内容应该可以工作,这称为:

对于第二部分,您似乎希望聚合id列,并检查聚合集中的任何值是否存在于字段_1中:

由于您的字段_1似乎是一个数组,因此以下内容应适用,这称为:

对于第二部分,您似乎希望聚合id列,并检查聚合集中的任何值是否存在于字段_1中:


字段_1的定义不应该是4[]中的字段_1吗?创建数组字段的任何一种方式。您能澄清这些问题吗?第一个问题是否意味着您希望获取字段_1和{1,2,3}中的数组具有任何公共元素的记录?第二个问题的意思是:获取字段_1数组包含id字段的记录吗?字段_1定义不应该是字段_1 in 4[]吗?创建数组字段的任何一种方式。请澄清这些问题好吗?第一个问题是否意味着您希望获取字段_1和{1,2,3}中的数组具有任何公共元素的记录?第二个问题的意思是:获取字段\ 1数组包含id字段的记录吗?
select *
from yourtable
where field_1 && (select array_agg(id) from yourtable)