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-通过数组元素搜索字符串的主要内容,如果未能解决你的问题,请参考以下文章