案例1(工作正常):我的数据库条目是一个简单的对象
employee_id | data (jsonb)
4 | {"name":"john"}
SELECT *
FROM employee
WHERE data ? 'john';
它将正确找到整个条目
情况2:我的数据库条目是一个元素数组
employee_id | data
4 | [{"name":"john"},{"city":"rio"}]
我无法使用jsonb函数在任何地方查找与'john'
匹配的行。充其量我可以使用WHERE data->0 ? 'john'
,但这不应该取决于数组条目的索引
谢谢!
答案 0 :(得分:1)
您可以像这样使用jsonb
“包含”运算符@>
:
... WHERE data @> '[{"name": "john"}]'
这将找到data
在顶层具有包含该条目的数组的所有行。