PostgreSql中解析JSON字段和解析TEXT中的JSON字段

初始化操作

创建表

csharp 复制代码
CREATE TABLE orders (  "ID" int8 NOT NULL,
                       "info_j" json NOT NULL,
                       "info_t" text NOT NULL
);

初始化表

csharp 复制代码
INSERT INTO orders("ID", "info_j","info_t") VALUES (1, '{"name":"张三","items":{"product":"啤酒","qty":6}}','{"name":"张三","items":{"product":"啤酒","qty":6}}');
INSERT INTO orders("ID", "info_j","info_t") VALUES (2, '{"name":"李四","items":{"product":"辣条","qty":8}}','{"name":"李四","items":{"product":"辣条","qty":8}}');
INSERT INTO orders("ID", "info_j","info_t") VALUES (3, '{"name":"王五","items":{"product":"苹果","qty":18}}','{"name":"王五","items":{"product":"苹果","qty":18}}');
INSERT INTO orders("ID", "info_j","info_t") VALUES (4, '{"name":"赵一","items":{"product":"香蕉","qty":20}}','{"name":"赵一","items":{"product":"香蕉","qty":20}}');

查询表

解析JSON字段

查询使用->操作符,查询json中所有顾客作为键

csharp 复制代码
SELECT info_j -> 'name' AS customer FROM orders;

下面使用->>操作获取所有顾客姓名作为值

csharp 复制代码
SELECT info_j ->> 'name' AS customer FROM orders;

根据json对象的key查询值

csharp 复制代码
SELECT info_j -> 'items' ->> 'product' AS customer FROM orders;

解析TEXT中的JSON字段

其实和解析JSON字段一样我们只需要加上::json


相关推荐
书院门前细致的苹果32 分钟前
MySQL 中的 B+树和 B树的区别详解
数据结构·数据库·mysql
小孔龙1 小时前
01.Kotlin Serialization - 基础用法
kotlin·json
用户76339900908201 小时前
MongoDB数据库
数据库
boonya1 小时前
数据库分库分表是考虑ShardingSphere 还是Mycat?
数据库
扶尔魔ocy1 小时前
【qml入门】在qml项目上加入用户登录qml页面(包含源码)
数据库
沢田纲吉1 小时前
MySQL 学习二:数据库的操作
数据库·后端·mysql
大白的编程日记.2 小时前
【MySQL】表的操作和数据类型
android·数据库·mysql
不秃的开发媛2 小时前
Java开发入门指南:IDE选择与数据库连接详解
java·数据库·ide
专注API从业者2 小时前
Scrapy 集成 JD API:一种高效且合规的商品数据采集方案
大数据·数据库·scrapy
好多172 小时前
《Redis的缓存策略》
数据库·redis·缓存