postgresql中jsonb格式的数据如何进行查询过滤

postgresql中jsonb格式的数据如何进行查询过滤

背景

{"resultStatus":"success","resultCode":"100","resultMsg":"成功!","data":null}

上述是postgresql中 jsonb格式的数据,根据json中的resultMsg字段的值进行过滤的sql

根据jsonb类型字段中json中的某个属性值进行过滤

PostgreSQL jsonb字段按resultMsg过滤的SQL

若表名为 your_table,jsonb字段名为 json_data,过滤 resultMsg 为指定值的SQL如下:

1. 精确匹配(等于"成功!")
复制代码
SELECT * FROM your_table 
WHERE json_data ->> 'resultMsg' = '成功!';
  • 说明->> 操作符提取jsonb字段中 resultMsg 的文本值,然后与目标字符串比较。
2. 模糊匹配(包含"成功"关键词)
复制代码
SELECT * FROM your_table 
WHERE json_data ->> 'resultMsg' LIKE '%成功%';
3. 结合其他条件(如resultStatus为"success")
复制代码
SELECT * FROM your_table 
WHERE 
  json_data ->> 'resultStatus' = 'success' 
  AND json_data ->> 'resultMsg' = '成功!';
关键语法说明
  • -> :返回jsonb对象(保留json格式),如 json_data -> 'resultMsg' 返回 "成功!"(带引号)。
  • ->> :返回文本字符串(去除引号),如 json_data ->> 'resultMsg' 返回 成功!(纯文本),适合直接比较。

根据实际需求选择操作符,精确匹配推荐用 ->>,效率更高。

相关推荐
怀旧诚子28 分钟前
timeshift之Fedora43设置,已在VM虚拟机验证,待真机验证。
java·服务器·数据库
haixingtianxinghai2 小时前
Redis的定期删除和惰性删除
数据库·redis·缓存
资深web全栈开发2 小时前
PostgreSQL Schema 最佳实践:架构师的命名与组织艺术
数据库·postgresql
麦聪聊数据3 小时前
利用实时数据管道与 SQL2API 重构企业自动化审计架构
数据库·sql·低代码
麦聪聊数据3 小时前
重构开放生态:利用 QuickAPI 跨越遗留系统与敏捷交付的工程实践
数据库·sql·低代码·restful
百结2147 小时前
Mysql数据库操作
数据库·mysql·oracle
keep one's resolveY7 小时前
时区问题解决
数据库
Leinwin8 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
qq_417695058 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水8 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游