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}
答案 0 :(得分:1)
感谢@ abelisto的建议,我提出了这个并且似乎有效
select *
from my_table
where array(select jsonb_object_keys(my_json_column)) <@ array['a', 'b', 'c'];