Вам необходимо сравнить его с массивом JSONB:
select *
from product
where contact -> 'country' = '["USA","UK"]'::jsonb;
Но это зависит от порядка элементов в массиве. Если вы хотите протестировать все ключи независимо от порядка, оператор ?&
может быть лучше:
where contact -> 'country' ?& array['UK','USA']
Это, однако, также вернет строки, которые содержат дополнительные элементы в массиве. Если вам нужно точно сопоставить все элементы независимо от порядка, вы можете дважды использовать оператор @>
:
where contact -> 'country' @> '["USA","UK"]'::jsonb
and contact -> 'country' <@ '["USA","UK"]'::jsonb