stackoverflow.com/questions/55004460/...

способ запроса поля jsonb postgres с видом предложения "IN" внутри массива.

Давайте предположим, что у меня есть стол

CREATE TABLE test(
   id uuid,
   test_content jsonb,
   PRIMARY KEY(id)
);

INSERT INTO test (id, test_content) VALUES 
('aa82a8b8-33ef-4937-bd8c-8a4b40960f18', '[{"label":"a","label1":"1"},{"label":"b","label1":"2"}]'),
('ba82a8b8-33ef-4937-bd8c-8a4b40960f18', '[{"label":"c","label1":"3"}]'),
('da82a8b8-33ef-4937-bd8c-8a4b40960f18', '[{"label":"d","label1":"4"}]');

Мне нужно выбрать строки, где метка внутри массива test_content может бытьb или жеd.

Я пытался

SELECT * 
FROM test 
WHERE test_content @> '[{"label":"b"}]' OR test_content @> '[{"label":"d"}]'

но когда я хочу расширить свой запрос сlabel1 содержащий2 или же3 это становится сложным ...

Что мне нужно, так этоWHERE label IN ('b','d') AND label1 IN ('2','3')

Возможно ли это с операторами JSONB?

Ответы на вопрос(1)

Ваш ответ на вопрос