【问题标题】:PostgreSQL jsonb - searching string through array elementrsPostgreSQL jsonb - 通过数组元素搜索字符串
【发布时间】:2020-03-25 01:33:20
【问题描述】:

案例 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',但这不应该取决于数组条目的索引

谢谢!

【问题讨论】:

  • 您的“工作”示例不是因为'john' 不是关键。

标签: postgresql jsonb


【解决方案1】:

您可以像这样使用jsonb“包含”运算符@>

... WHERE data @> '[{"name": "john"}]'

这将找到data 在顶层有一个包含此条目的数组的所有行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 2017-04-12
    • 2015-08-15
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多