PostgreSQL jsonb-通过数组元素搜索字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL jsonb-通过数组元素搜索字符串相关的知识,希望对你有一定的参考价值。
情况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'
,但这不应该取决于数组条目的索引
Thx!
答案
您可以像这样使用jsonb
“包含”运算符@>
:
... WHERE data @> '["name": "john"]'
这将找到data
在顶层具有包含该条目的数组的所有行。
以上是关于PostgreSQL jsonb-通过数组元素搜索字符串的主要内容,如果未能解决你的问题,请参考以下文章
Postgresql:搜索jsonb对象数组时如何使用动态值?
PostgreSQL:仅当元素唯一时才将元素附加到 jsonb 数组
在 PostgreSQL 中的 jsonb 列中搜索 json 数组,其中数据为 json 数组
PostgreSQL:更新JSONB结构中嵌套数组中元素的属性