PostgreSQL jsonb-通过数组元素搜索字符串
案例1(工作正常):我的db条目是一个简单的对象PostgreSQL jsonb-通过数组元素搜索字符串,postgresql,jsonb,Postgresql,Jsonb,案例1(工作正常):我的db条目是一个简单的对象 employee_id | data (jsonb) 4 | {"name":"john"} SELECT * FROM employee WHERE data ? 'john'; 它将正确地找到整个条目 案例2:MyDB条目是一个元素数组 employee_id | data 4 | [{"name":"john"},{"city":"rio"}] 我无法在任何地方使用jsonb函数查找与'jo
employee_id | data (jsonb)
4 | {"name":"john"}
SELECT *
FROM employee
WHERE data ? 'john';
它将正确地找到整个条目
案例2:MyDB条目是一个元素数组
employee_id | data
4 | [{"name":"john"},{"city":"rio"}]
我无法在任何地方使用jsonb函数查找与'john'
匹配的行。我最多只能使用WHERE data->0?“john'
但这不应该取决于数组项的索引
谢谢 您可以像这样使用
jsonb
“contains”operator@>
:
... WHERE data @> '[{"name": "john"}]'
这将找到数据中的所有行
的顶层都有一个包含此项的数组。您的“工作”示例没有找到,因为'john'
不是键。