the text array exist as top-level keys or array elements?
'{"a":1, "b":2, "c":3}'::jsonb ?| array['b', 'd'] → t это поиск по ключам а по значениям как искать?
Я бы через jsonb_each_text раскрыл. И конкатенировал ket||value как-нибудь. Хотя, возможно, есть возможность это одним оператором через jsonpath сделать (но я не знаю jsonpath и не очень горю жэланием его учить).
select * from jsonb_each_text ('{"a":1, "b":2, "c":3}'::jsonb) where "value" :: int = 2
а если массив значений нужно проверить, получится??
select * from jsonb_each_text ('{"a":1, "b":2, "c":3}'::jsonb) where "value" :: int in (1,2)
гений!!!! куда бабки скидывать?
Рад, что смог помочь)
ток почему там строки повторно выводятся
как сделать без join , что б у меня повторяющие значения не выводились SELECT kart.kusp, kart.status, kart.stat, kart.short_fabula, kart_lico.id_kart, lico.* FROM lico join kart_lico on lico.id=kart_lico.id_lico and ( lico.name LIKE '%Вл%' ) join kart on kart_lico.id_kart=kart.id left join jsonb_array_elements(lico.data->'tatu') as t(val) cross join jsonb_each_text(t.val) on "value" :: text in ('Роза', 'Нога', 'Рука правая' )
Обсуждают сегодня