1

У меня есть эта таблица:Postgresql: Как запросить JSONb массивов, содержащих некоторое значение (ы)

enter image description here

CREATE TABLE lawyer (
    id SERIAL PRIMARY KEY, 
    data jsonb 
); 

INSERT INTO lawyer (data) VALUES 
    ('{"a": 1}'), 
    ('{"tags":["derecho", "civil", "laboral", "penal"]}'), 
    ('{"tags":["derecho", "penal"]}') 
; 

То, что я хочу, это запрос JSONb в Postgres, когда мне нужно найти пихту пример любого элемента, который содержит «гражданский» OR «Derecho»

+0

Возможный дубликат [Postgres JSONB: значения запроса в массиве JSON] (http://stackoverflow.com/questions/32357971/postgres-jsonb-query-values-in-json-array) – bjmc

ответ

2

Наконец нашел способ сделать это:

магазина JSon массивов пагубных ctly в качестве верхнего уровня:

INSERT INTO lawyer (data) VALUES 
    ('["derecho","laboral","penal"]'), 
    ('["derecho", "civil", "laboral", "penal"]'), 
    ('["derecho", "penal"]') 
; 

SELECT * 
FROM lawyer 
WHERE data ? 'penal'; 

Результат:

enter image description here

2

Для тех, кто ищет ответ для исходной структуры данных, вот SQL:

SELECT * FROM lawyer WHERE lawyer.data->'tags' ? 'penal' 
Смежные вопросы