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

Chr*_*erJ 5 postgresql json jsonb

我有一个 postgres 列“数据”,它是这种格式的 jsonb:

{
  'tags': ['friend','enemy','frenemy']
  ... // other data
}
Run Code Online (Sandbox Code Playgroud)

假设我想选择所有标记为“敌人”或“敌人”的行,我该怎么做?

我知道我可以选择一个标签

SELECT * FROM people WHERE people.data->'tags' ? 'enemy'
Run Code Online (Sandbox Code Playgroud)

我应该使用@> ANY,但无法弄清楚使其工作的语法。

Chr*_*erJ 9

我发现答案隐藏在这个 SO question 中

SELECT * FROM people WHERE people.data->'tags' ?| ARRAY['enemy','frenemy']
Run Code Online (Sandbox Code Playgroud)