SELECT
id,
some_jsonb_table
FROM
public.example
where some_jsonb_table::text ilike '%example_report%'
Я пытался включить some_jsonb_table
TEXT
, но все равно ILIKE
не работает.
Как проверить, содержит ли содержимое таблицы искомый фрагмент текста?
jsonb_data::text ilike '%my_search_string%
должно работать отлично
Возьмите этот образец таблицы и запрос, он работает даже с вложенными объектами jsonb.
with a as (
select cast('{"brand": "Toyota", "color": ["red", "black"], "price": 285000}' as jsonb) jsonb_data
union
select cast('{"brand": "Honda", "color": ["blue", "pink"], "price": 25000}' as jsonb)
)
select * from a
where jsonb_data::text ilike '%blue%';
Результат ожидаемый
jsonb_data
{"brand": "Honda", "color": ["blue", "pink"], "price": 25000}
Вы также можете использовать альтернативные операторы
with a as (
select cast('{"brand": "Toyota", "color": ["red", "black"], "price": 285000, "sold": true}' as jsonb) jsonb_data
union
select cast('{"brand": "Honda", "color": {"good":[["blue"], "pink"]}, "price": 25000, "sold": false}' as jsonb)
)
select * from a
where jsonb_data ->> 'color' ~* 'blue';
почему это не работает? Вы получаете сообщение об ошибке или ожидаемый результат не происходит? Можете ли вы поделиться некоторыми образцами данных и образцами вывода?