PostgreSQL查询JSON中的数组
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中的数组相关推荐
- 如何从PostgreSQL json中提取数组
如何从PostgreSQL json中提取数组 作者 digoal 日期 2016-09-10 标签 PostgreSQL , json , 数组 , jsonb 背景 在PostgreSQL中使用J ...
- PostgreSQL 查询数据库中所有函数信息,函数名(全部)
PostgreSQL 查询数据库中所有函数信息,函数名(全部) selectp .oid,p .proname,p .proargtypes,p .proacl,p .prorettype,p .pr ...
- R语言使用ODBC连接数据库PostgreSQL查询语句中含有处理方法
2019独角兽企业重金招聘Python工程师标准>>> #无法查询,表名称不正确 > result <- sqlQuery(PostgreSQLConnection,&q ...
- 取Json中的数组进行遍历
废话不多说,直接上代码 测试: String test = "{"list":[{"id":1,"qty":20,"ty ...
- Postgresql:删除及查询字段中包含单引号的数据
Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...
- php 1 2 3 转arry_在PHP语言中使用JSON和将json还原成数组的方法
在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...
- 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )
文章目录 一.tasks.json 中的 args 数组配置分析 二.编译并执行 C++ 程序 可以参考官方提供的文档 : https://code.visualstudio.com/docs/cpp ...
- postgres 显示变量_sql - 如何在PostgreSQL查询中声明变量
sql - 如何在PostgreSQL查询中声明变量 如何声明变量以用于PostgreSQL 8.3查询? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET ...
- mysql sql查询json数据类型_SQL中的JSON数据类型
SQL中的JSON数据类型 概述 MySQL支持原生JSON类型,使用JSON数据类型相较于将JSON格式的字符串存储在String型中的优势有: 存储时会自动验证JSON文本: 可以优化存储格式.存 ...
最新文章
- 漫谈视频目标跟踪与分割
- Linux简单的http服务器:SimpleHTTPServer
- [翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
- linux安装mongodb(设置非root用户和开机启动)
- 11.22Daily Scrum(2)
- mysql 数据结构语句_SQL 数据结构操作语句
- neo4j docker
- 学习SQL:SQL Server数据透视表
- 跑马灯效果 例子 写法 利用闭包
- 【C语言】入门基础选择题附答案
- 摄影测量与遥感数据精度表格
- svn 服务器ip地址变更
- JS判断当前页面是否在微信内打开
- Excel职场小技巧:教你如何分页打印Excel表格
- 使用百度在某个网站内进行搜索
- CSMA/CD 协议
- Matlab画散点图并拟合(使用cftool函数拟合)
- Nginx+Tomcat+Redis负载均衡实现Session共享
- jason 序列化和反序列化