可以实现Postgres jsonb LIKE查询吗



有人知道在查询jsonb列时如何引入通配符(例如%%(吗?在本例中,该列是顶级数组?也希望忽略案例

select * from "food" where (type @> '"xyz"')

您需要运行数组:

select f.*
from food f
where exists (select *
from jsonb_array_elements_text(f.type) as x(typ)
where x.typ like '%xyz%');

一个选项是在表和未测试的数组元素之间应用CROSS JOIN,而不将子查询作为

SELECT j.*
FROM food f
CROSS JOIN jsonb_array_elements(type) AS j
WHERE value::text like '%"xyz"%'

演示

谢谢大家。。这似乎奏效了:

SELECT *
FROM 
food,
jsonb_array_elements(type) as types
WHERE types::text ilike '%xyz%';```

最新更新