Postgres查询JSONB数组是否包含另一个数组中的一个或多个元素

5

我有一个名为"data"的postgres列,其格式为jsonb,如下所示:

{
  'tags': ['friend','enemy','frenemy']
  ... // other data
}

假设我想选择所有标记为'enemy'或'frenemy'的行,该怎么做?

我知道我可以使用单一标记进行选择,方法是:

SELECT * FROM people WHERE people.data->'tags' ? 'enemy'

我应该使用@> ANY,但是我不太清楚如何使用正确的语法让它生效。
1个回答

11

我在这个SO问题中找到了答案。

SELECT * FROM people WHERE people.data->'tags' ?| ARRAY['enemy','frenemy']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接