Динамический запрос ключа JSONB - PullRequest
0 голосов
/ 11 марта 2019

У меня есть поле jsonb с этими данными:

{"en":"english text", "es":"spanish text", "fr":"french text"}

Я должен сделать запрос для поиска текста, который частично совпадает на языке, указанном пользователем.У меня нет проблем со значением текста, но ошибка броска ключа.Этот запрос работает:

select *
from table
where (language ->> 'en') ilike '%' || 'text_to_search' || '%'

Я могу легко параметризовать 'text_to_search' с пользовательским текстом, но я не могу сделать то же самое с ключом jsonb.Я хотел бы сделать что-то вроде этого, но, очевидно, это не работает:

select *
from table
where (language ->> || 'en' ||) ilike '%' || 'text_to_search' || '%'

Я тоже пробовал это:

select *
from table
where language #>> '{' || 'en' || '}' ilike '%' || 'text_to_search' || '%'

Есть ли способ сделать это?

...