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']
我有一个 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']