我有一个场景,我需要通过匹配表格其中一列中的项目来选择行,
我的表格如下所示,
rbenv install -v 2.5.0
案例1: 我想选择其姓氏为“vin'”的行。在里面。我使用了以下查询,它工作正常。
create table Arraycheck
(
empnames text[],
age int
)
insert into Arraycheck (empnames,age) values ('{vin,vinod,hyv,bang}'::text[],12);
insert into Arraycheck (empnames,age) values ('{bangalore,bengaluru,bang}'::text[],13);
案例2:
现在我想选择既包含' vin'并且' bang'。我无法找到对此的查询,
有人可以在这里指导我。我正在使用spring jdbctemplate。我需要在spring jdbctemplate中使用此查询。
答案 0 :(得分:1)
您可以使用postgres @>
运算符:
select * from arraycheck where empnames @> '{vin,bang}';
如果左侧的数组包含右侧数组的所有元素,则返回true。
如果您想要包含任何(而不是全部)项目的匹配项,请使用&&
运算符(重叠):
select * from arraycheck where empnames && '{vin,bang}';