Sql 检查文本数组中的项
我有一个场景,需要通过匹配表中一列中的项目来选择行 我的桌子如下所示Sql 检查文本数组中的项,sql,arrays,postgresql,Sql,Arrays,Postgresql,我有一个场景,需要通过匹配表中一列中的项目来选择行 我的桌子如下所示 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,ban
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);
案例1:
我想选择empnames中包含“vin”的行。我使用了下面的查询,效果很好
SELECT * FROM Arraycheck WHERE 'vin' = ANY (empnames);
案例2:
现在我想选择同时具有“vin”和“bang”的行。我找不到对此的查询
有人能给我引路吗。我使用的是SpringJDBCTemplate。我需要在spring jdbctemplate中使用此查询。您可以使用postgres@>运算符:
select * from arraycheck where empnames @> '{vin,bang}';
如果左侧的数组包含右侧数组的所有元素,则返回true
如果希望匹配包含任何项而不是所有项,请使用&&运算符重叠:
select * from arraycheck where empnames && '{vin,bang}';