postgres JSONB:检查*数组是否包含所有键*

时间:2017-11-29 20:38:42

标签: postgresql jsonb

postgres doc表示我可以使用?&检查JSONB对象的密钥是否包含数组中的所有元素。有什么东西让我检查一下JSONB对象中的所有键是否包含在给定数组中?

这样做一个像

这样的查询
select my_jsonb_column 
from my_table
where my_jsonb_column *contained_by* array['a', 'b', 'c'];

将产生如下结果,其中键是给定数组的子集

{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3}

1 个答案:

答案 0 :(得分:1)

感谢@ abelisto的建议,我提出了这个并且似乎有效

select *
from my_table
where array(select jsonb_object_keys(my_json_column)) <@ array['a', 'b', 'c'];