У меня есть следующие:Как я могу выбрать «занятие»?
SELECT *
FROM (
SELECT '{"people": [{"name": "Bob", "occupation": "janitor"}, {"name": "Susan", "occupation": "CEO"}]}'::jsonb as data
) as b
WHERE data->'people' @> '[{"name":"Bob"}]'::jsonb;
Я фильтрации для объекта «{„имя“:„Боб“,„оккупации“:„дворник“}»
Как вернуть профессию Боба ("дворник")?
SELECT data->'people'->>'occupation'
FROM (
SELECT '{"people": [{"name": "Bob", "occupation": "janitor"}, {"name": "Susan", "occupation": "CEO"}]}'::jsonb as data
) as b
WHERE data->'people' @> '[{"name":"Bob"}]'::jsonb;
возвращает
?column?
--------
NULL
Ищу:
occupation
----------
janitor
Хороший ответ, надеюсь, что вы не против форматирования. Вы можете выбрать 'data - >> 'ocction'', чтобы избежать двойных кавычек в результате. – Andomar
@Andomar Спасибо, пропустил это. Редактирование: –
@SamiKuhmonen: Это работает, еще раз спасибо! Какой индекс мне нужен для jsonb_array_elements? Я не мог найти здесь никакой информации: http://www.postgresql.org/docs/9.4/static/datatype-json.html –