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' 返回 成功!(纯文本),适合直接比较。

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

相关推荐
极创信息8 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
lzhdim9 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
2301_795099749 小时前
让 CSS Grid 自适应容器尺寸的动态布局方案
jvm·数据库·python
FQNmxDG4S10 小时前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
热爱运维的小七10 小时前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
@小柯555m10 小时前
MySql(高级操作符--操作符混合运用)
数据库·sql·mysql
CDN36010 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
bzmK1DTbd10 小时前
JDBC编程规范:PreparedStatement与事务管理
数据库·python·eclipse
卧室小白10 小时前
Redis-哨兵模式
数据库·redis·缓存