postgres select 在 varchar[] 列中具有任何列表字符串的所有行
postgres select all rows that has any of list strings in a varchar[] column
create table Table1(id bigserial not null primary key, names VARCHAR(256)[]);
insert into Table1(names) values('{name1,name2}');
insert into Table1(names) values('{name3,name4}');
select * from Table1 where names @> '{name1}';
结果
id | name
---+-----
1 | {name1,name2}
我希望能够提供 varchar 列表,例如 name1、name3 和 select 查询应该 return 两行
您可以使用重叠运算符 &&
:
where names && array['name1', 'name3']::varchar[];
create table Table1(id bigserial not null primary key, names VARCHAR(256)[]);
insert into Table1(names) values('{name1,name2}');
insert into Table1(names) values('{name3,name4}');
select * from Table1 where names @> '{name1}';
结果
id | name
---+-----
1 | {name1,name2}
我希望能够提供 varchar 列表,例如 name1、name3 和 select 查询应该 return 两行
您可以使用重叠运算符 &&
:
where names && array['name1', 'name3']::varchar[];