我有一个包含此数据的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' || '%'
有什么办法吗?