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

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

相关推荐
昌原的儿子LEO1 小时前
Linux IO多路复用与SQLite数据库核心知识点总结
linux·数据库·oracle
山岚的运维笔记2 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
聚美智数2 小时前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
坐吃山猪2 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程
数智启示录2 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
姜太小白3 小时前
【Oracle】记排查sh脚本调用SQL执行卡顿的排查总结
数据库·sql·oracle
bgy66664 小时前
MariaDB 数据库 基础详解
数据库·mariadb
自动化监测Learner4 小时前
QGIS 把geojson数据导入 PostgreSQL/PostGIS 的完整流程
数据库·postgresql
虎虎(_ _)。゜zzZ4 小时前
Qdrant向量数据库工程实战
数据库·人工智能·大模型·向量数据库·rag·qdrant
ZGG0034 小时前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端