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?