PostgreSQL查询JSON中的数组

1、首先了解-> 和 ->>的区别
-> 返回json格式的数据
->>返回文本格式的数据
2、查询json文件
cont{"os": "Android","chn": "-1", "dan": 0,
"sex": 0,
"file": "lv_statistics",
"time": "2017-01-23 16:47:54","honor": 0, "chn_id": "-1",
"is_pay": 0,
"account": "-1","role_id": -1,
"battle_id": 1050,
"game_time": 301,
"role_name": "-1","battle_name": "-1","battle_type": 4,"lv_num_json": [{"lv": 8,"num": 1},{"lv": 9,"num": 10}]
}
  • 查询字段
select cont from student;

在这里插入图片描述

  • 查询cont中的os
select cont ->> 'os' os from student;

  • 查询cont中的lv_num_json
select json_array_elements(cont -> 'lv_num_json') from student;

  • 查询cont中的lv_num_json中的lv
select json_array_elements(cont -> 'lv_num_json') -> 'lv' from student;

3、进阶

如果json文件中嵌套着数组,数组中嵌套着json文件,json文件再嵌套着数组,甚至是多层,需要借助json_array_elements来拆分

::json  将其转化为json格式(如果不清楚可以使用pg_typeof()查看)
::json#>> 指向下一层
json_array_elements  将数组中的json文件拆出来

原来的lv_num_json

 "lv_num_json": [{"lv": 8,"num": 1},{"lv": 9,"num": 10}]

现在将其改为

"lv_num_json":[{"lv":[{"brand":"品牌1","price":"200"},{"brand":"品牌2","price":"200"}],"num":1},{"lv":[{"brand":"品牌3","price":"200"},{"brand":"品牌4","price":"200"}],"num":10}]

目标:查看lv中的brand信息

分析思路:

1、查看lv_num_json

2、将lv_num_json使用json_array_elements拆出来,并查看是否是json格式,如果不是,将其转化

3、查看lv,并将其使用json_array_elements拆出来

4、查看brand

select name, json_array_elements((json_array_elements((cont :: json#>> '{lv_num_json}')::json) -> 'lv')) -> 'brand' from student where id = 2;

PostgreSQL查询JSON中的数组相关推荐

  1. 如何从PostgreSQL json中提取数组

    如何从PostgreSQL json中提取数组 作者 digoal 日期 2016-09-10 标签 PostgreSQL , json , 数组 , jsonb 背景 在PostgreSQL中使用J ...

  2. PostgreSQL 查询数据库中所有函数信息,函数名(全部)

    PostgreSQL 查询数据库中所有函数信息,函数名(全部) selectp .oid,p .proname,p .proargtypes,p .proacl,p .prorettype,p .pr ...

  3. R语言使用ODBC连接数据库PostgreSQL查询语句中含有处理方法

    2019独角兽企业重金招聘Python工程师标准>>> #无法查询,表名称不正确 > result <- sqlQuery(PostgreSQLConnection,&q ...

  4. 取Json中的数组进行遍历

    废话不多说,直接上代码 测试: String test = "{"list":[{"id":1,"qty":20,"ty ...

  5. Postgresql:删除及查询字段中包含单引号的数据

    Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...

  6. php 1 2 3 转arry_在PHP语言中使用JSON和将json还原成数组的方法

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...

  7. 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )

    文章目录 一.tasks.json 中的 args 数组配置分析 二.编译并执行 C++ 程序 可以参考官方提供的文档 : https://code.visualstudio.com/docs/cpp ...

  8. postgres 显示变量_sql - 如何在PostgreSQL查询中声明变量

    sql - 如何在PostgreSQL查询中声明变量 如何声明变量以用于PostgreSQL 8.3查询? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET ...

  9. mysql sql查询json数据类型_SQL中的JSON数据类型

    SQL中的JSON数据类型 概述 MySQL支持原生JSON类型,使用JSON数据类型相较于将JSON格式的字符串存储在String型中的优势有: 存储时会自动验证JSON文本: 可以优化存储格式.存 ...

最新文章

  1. 漫谈视频目标跟踪与分割
  2. Linux简单的http服务器:SimpleHTTPServer
  3. [翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
  4. Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
  5. linux安装mongodb(设置非root用户和开机启动)
  6. 11.22Daily Scrum(2)
  7. mysql 数据结构语句_SQL 数据结构操作语句
  8. neo4j docker
  9. 学习SQL:SQL Server数据透视表
  10. 跑马灯效果 例子 写法 利用闭包
  11. 【C语言】入门基础选择题附答案
  12. 摄影测量与遥感数据精度表格
  13. svn 服务器ip地址变更
  14. JS判断当前页面是否在微信内打开
  15. Excel职场小技巧:教你如何分页打印Excel表格
  16. 使用百度在某个网站内进行搜索
  17. CSMA/CD 协议
  18. Matlab画散点图并拟合(使用cftool函数拟合)
  19. Nginx+Tomcat+Redis负载均衡实现Session共享
  20. jason 序列化和反序列化

热门文章

  1. 世界大学机械工程TOP10,国内大学哪家强?
  2. Windows网络发现无法启动
  3. 移动应用程序和网页应用程序_移动应用程序的站点可靠性工程
  4. 风光电互补MATLAB仿真模型
  5. 关于java构造函数 的错误 there is no default constructor available in
  6. 电脑计算器使用小窍门
  7. 有颜值、会说话的文字,意境满满!
  8. LeetCode 5661. 替换隐藏数字得到的最晚时间 做题小结
  9. Matlab 基础01 - 多维数组的排列转换和Permute 函数
  10. 还记得谷歌之前发现的两颗行星吗?今天谷歌对此披露了重要技术细节