Postgres select 其中 jsonb 数组包含另一个数组中的一个或多个元素

Postgres select where jsonb array contains one or more elements in another array

我有一个 postgres 列 'data',它是这种格式的 jsonb:

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

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

我知道我可以 select 在带有

的单个标签上
SELECT * FROM people WHERE people.data->'tags' ? 'enemy'

我应该使用 @> ANY,但不太明白使它起作用的语法。

我在 this SO question 中找到了答案。

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