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

时间:2016-10-25 05:24:40

标签: json postgresql jsonb

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

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

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

我知道我可以使用

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

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

1 个答案:

答案 0 :(得分:2)

我发现答案隐藏在this SO question

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