Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查文本数组中的项_Sql_Arrays_Postgresql - Fatal编程技术网

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}';