首页 > 数据库 >PgSql jsonb类型查询

PgSql jsonb类型查询

时间:2024-03-15 16:44:19浏览次数:34  
标签:heart jsonb 查询 PgSql 索引 json chargeing

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

json函数及操作,详情请参考:http://www.postgres.cn/docs/12/functions-json.html

表结构如下:

create table chargeing
(
id UUID primary key not null,
heart jsonb not null,    
createtime timestamp  not null
);
create index chargeing_heart_index on chargeing using gin(heart);

该表创建了索引,

一个为Jsonb类型的gin索引(注意:jsonb和json类型创建索引时,应使用 gin 类型索引)

数据表数据结构如下

其中,有如下结构json数据

{
  "n1": 1,
  "n2": 3,
  "n3": 4,
  "n4": 2,
  "csq": "28,99",
  "nos": "306051450,306050647,306050607,306050623,306050611,306050095,306051644,306050354,306051468,306050791,306051841,306051137,306051138,306050139,306050921,306050470,306051473,306050594,306051799,306051396,306050679,306050615,306050958,306050920,306050924",
  "sts": "2,5,6,6,4,6,3,6,6,6,6,4,6,6,6,5,3,6,6,1,4,6,4,6,3",
  "points": [
    {
      "ID": 7,
      "RI": 14,
      "RT": 23,
      "RV": 5323,
      "TI": 70,
      "TT": 39,
      "TV": 4761,
      "WH": 82,
      "typ": "",
      "RXSN": 1306080009,
      "TXSN": 306051644
    },
    {
      "ID": 17,
      "RI": 12,
      "RT": 23,
      "RV": 5267,
      "TI": 64,
      "TT": 44,
      "TV": 4788,
      "WH": 16,
      "typ": "",
      "RXSN": 1306080079,
      "TXSN": 306051473
    },
    {
      "ID": 25,
      "RI": 219,
      "RT": 36,
      "RV": 6686,
      "TI": 378,
      "TT": 40,
      "TV": 4638,
      "WH": 54,
      "typ": "",
      "RXSN": 2305310090,
      "TXSN": 306050924
    }
  ],
  "deviceNo": "C23009C0001"
}
View Code

 1、json 和 josnb 查询操作符

 2、jsonb 额外的操作符

函数

 

 

3、查询需求

3.1、查询points数组中的第一个元素

SELECT
 
heart -> 'points' ->> 0 as rx 
 
FROM
 
chargeing;

 

标签:heart,jsonb,查询,PgSql,索引,json,chargeing
From: https://www.cnblogs.com/chenwolong/p/18075725

相关文章

  • MySQL 跨库之间联合查询的方法
    MySQL跨库之间联合查询的方法背景随着业务上云的需要,公司里面有阿里云上面的测试环境.也有公司内的测试环境.但是阿里云上面的机器和公司内的机器存在一些差异.所以一直想有一个归集数据的过程.能够在一张图标里面关联公司内和阿里云上面的一些数据信息实现类似于混......
  • php多进程引发mysql查询问题
    1、报错:Packetsoutoforder.Expected1received56.Packetsize=3159346开始配置my.cnf的max_allowed_packet=2G可是没什么卵用原因:个人判断是因在laravelmysql的连接是随着php销毁而销毁;所以会保持数据库的连接会话能重复使用所以要配置database.php  配置文件opt......
  • Jemter查询数据库
    1、导入mysql驱动在mysql官网下载mysql驱动https://www.mysql.com/;参考博客,https://blog.csdn.net/Li_Ya_Fei/article/details/104583417,将下载下来的jar包存放在apache-jmeter-5.3\lib\ext下后重启jemter。2、创建JDBCConnectionConfiguration  3、创建JDBCrequest......
  • Kibana导出查询结果
    查询Exchange服务器上的安全事件日志,通过攻击源客户端计算机名称,获取攻击源IP  Visualize-新建-Datatable-索引定义好过滤条件后,根据访问源IP进行分组,并统计访问次数,然后导出结果 定义好过滤条件后,导出被爆破的用户名,并统计次数,然后导出结果 通过直方图统计......
  • NOT IN子查询中出现NULL值对结果的影响你注意到了吗
    前言开发人员写的SQL语句中经常会用到in,exists,notin,notexists这类子查询,通常,含in、exists的子查询称为半连接(semijoin),含notin、notexists的子查询被称之为反连接,经常会有技术人员来评论in与exists效率孰高孰低的问题,我在SQL优化工作中也经常对这类子查询做优化改写,比如半......
  • 基于微信小程序的公交信息在线查询系统小程序设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 【PG】查询数据大小
    #!/bin/bash##################################################################calculate_a_pure_size_of_the_postgres_db.sh##ThisscriptcalculatesapuresizeofthePostgresDB##DB_Pure_Size=DB_Size-DB_Tables_Bloat-DB_Indexes_Bloat##Aut......
  • MYSQL学习笔记26: 多表查询|子查询
    多表查询|子查询行子查询查询与张无忌工资相同,且直属领导相同的员工#写法1select*fromempwheresalary=(selectsalaryfromempwherename='张无忌')andmanagerId=(selectmanagerIdfromempwherename='张无忌');#可以合并起来,写入一个集合selec......
  • Mysql 100个表嵌套查询 存储过程
    背景1. 业务销售订单会随机落在1~100表中,查询一个订单时需要1到100表依次去查询,增加手工重复操作和浪费时间。2.查询未解冻数据时,需要过滤部分解冻的数据,此时需要用到嵌套查询。 一、根据订单号,循环1~100个表,查询出订单数据CREATEDEFINER=`{数据库连接账号}`@`%`......
  • 利用jmeter命令行模式对influxdb查询api进行压力测试
    需求说明物联网指标数据(车辆的轨迹、里程、速度等)存储在influxDB中。需要对指标查询服务的性能做压力测试。背景1、javaservice已经对influxDB查询sql做了封装,api参数如下:{"deviceIds":["14146284645"],"startTime":1710259200000,"endTime":17104320......