鉴于存储在db中的以下数据:
{
myArray: [
{key: 'a'},
{key: 'b'},
{key: 'c'}
]
}
是否可以按如下方式查询交叉点?
[
{key: 'a'},
{key: 'd'}
]
你知道,即使{key: 'a'}
不匹配,{key: 'a'}
也是交集。
答案 0 :(得分:1)
您可以使用简单的jsonb
和JOIN
在jsonb_array_elements
上进行交叉。 select element
from tbl
cross join jsonb_array_elements(tbl.jsonb_column -> 'myArray') a1(element)
inner join jsonb_array_elements(jsonb '[{"key":"a"},{"key":"d"}]') a2(element) using (element);
-- element
-----------------
-- '{"key": "a"}'
函数:
{{1}}