0

In the hstore docs there is a documented operator to check if the hstore contains all specified keys:

Operator: hstore ?& text[]

Description: does hstore contain all specified keys?

Example: 'a=>1,b=>2'::hstore ?& ARRAY['a','b']

Result: => t

My use case is the exact opposite: I want to check if the hstore does not contain all specified keys.

So 'a=>1,b=>2'::hstore SOME_OPERATOR ARRAY['b','c'] should return false since 'a=>1,b=>2' contains b.

I tried !?& but to no surprise, that didn't work. Is there such an operator? Or a method to negate the documented one?

Community
  • 1
  • 1
davegson
  • 8,205
  • 4
  • 51
  • 71

1 Answers1

2

Negate the condition and change the operator to ?| so that it does not match any keys from the array:

select *
from some_table
where not (some_column ?| ARRAY['b','c'])
davegson
  • 8,205
  • 4
  • 51
  • 71