查找hstore不包含任何指定键的所有内容

时间:2016-09-08 07:17:25

标签: postgresql hstore negation

hstore docs中有一个文档化的运算符来检查hstore是否包含所有指定的键:

  

运营商: hstore?&文字[]

     

说明:hstore是否包含所有指定的密钥?

     

示例:' a => 1,b => 2' :: hstore?& ARRAY ['一个'' B&#39]

     

结果: =>吨

我的用例正好相反:我想检查hstore是否包含所有指定的键。

因为'a=>1,b=>2'::hstore SOME_OPERATOR ARRAY['b','c']包含b。

,所以'a=>1,b=>2'应该返回false

我试过了!?&,但毫不奇怪,这没有用。有这样的运营商吗?还是一种否定记录的方法?

1 个答案:

答案 0 :(得分:1)

取消条件并将操作符更改为?|,使其与数组中的任何键不匹配:

select *
from some_table
where not (some_column ?| ARRAY['b','c'])