Запрос на основе столбца JSONB - PullRequest
0 голосов
/ 24 мая 2019

У меня есть таблица, в которой есть столбец jsonb (называемый info), имеющий два типа фигур: иногда это объект, а иногда массив объектов.

Я хочу иметь возможность получить всестрок в этой таблице всякий раз, когда этот столбец jsonb является массивом И один из объектов имеет свойство 'id', равное 10.

Итак, вот что я пробовал:

select * from users
CROSS JOIN LATERAL jsonb_array_elements(users.info) users_info
WHERE users_info->>'id' = 10

Этоне работает, потому что jsonb_array_elements взорвется, если значение является объектом, а не массивом.Как мне этого добиться?

...