检查文本数组中的项目

时间:2018-02-17 06:13:17

标签: sql arrays postgresql

我有一个场景,我需要通过匹配表格其中一列中的项目来选择行,

我的表格如下所示,

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中使用此查询。

1 个答案:

答案 0 :(得分:1)

您可以使用postgres @>运算符:

select * from arraycheck where empnames @> '{vin,bang}';

如果左侧的数组包含右侧数组的所有元素,则返回true。

如果您想要包含任何(而不是全部)项目的匹配项,请使用&&运算符(重叠):

select * from arraycheck where empnames && '{vin,bang}';