У меня есть поле 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' || '%'
Есть ли способ сделать это?