Postgres,两个数组有一个非空的交集

问题描述 投票:0回答:1

我有一个表,其中的列tags的类型为varchar []

我想选择标记包含一组值中至少一个的所有行。

类似这样的东西:

-- Not real code
SELECT * 
FROM foo 
WHERE non_empty(set_intersection(tags, '{ "apples", "bananas", "cherries" }'))

此语法是什么?


我知道我可以进行一系列的OR,但这似乎不太优雅。

postgresql
1个回答
0
投票

您可以使用&&,数组重叠运算符:

select *
from foo
where tags && ARRAY['apples', 'bananas', 'cherries']
© www.soinside.com 2019 - 2024. All rights reserved.