数据库中用JSON数据存储

1 创建数据库

CREATE TABLE test (
    data JSON
);

1 插入JSON数据的方法

(1)

INSERT INTO test (data) VALUES ('{"name":"李明","age":12}');

(2)

INSERT INTO test (data) VALUES (JSON_OBJECT('name','lisi','age',54));

(3) 插入数组

INSERT INTO test (data) VALUES (JSON_OBJECT('name','lisi','age',54, 'hobby', JSON_ARRAY('旅行', '散步')));

2 查询JSON数据的方法

(1) 查询数据

select JSON_EXTRACT(data,'$.age') from test

(2) 查询数组

<1> 查询单个

select data->'$.hobby' from test

select JSON_EXTRACT(data,'$.hobby[1]') from test

如果查询出来的数据不想要双引号 可以用下面的形式

select data->>'$.name' from test

<2> 查询多个

select JSON_EXTRACT(data,'$.hobby[0 to 1]') from test

(3)查询是否存在

select * from test where JSON_CONTAINS(data,JSON_OBJECT('name','lisi'))

(4) 只含有一个键就返回数据/全部含有就返回数据

select * from test where JSON_CONTAINS_path(data,'one','$.hobby','$.name')

select * from test where JSON_CONTAINS_path(data,'all','$.hobby','$.name')

(5) 只要含有一个相关数据 返回它的key

select JSON_SEARCH(data,'one','旅行') from test

3 修改JSON数据的方法

(1) 更新

UPDATE test
SET data = JSON_SET(data, '$.hobby[0]', '吃饭')
WHERE id = 4;

(2) 增加(在原有JSON数据中)

UPDATE test
SET data = JSON_INSERT(data, '$.hobby[2]', '看电影','$.gender','男')
WHERE id = 4;

(3) 替换

UPDATE test
SET data = JSON_REPLACE(data, '$.hobby[2]', '休息')
WHERE id = 4;

(4) 移除

UPDATE test
SET data = JSON_REMOVE(data, '$.name')
WHERE id = 4;
相关推荐
WaaTong11 分钟前
《重学Java设计模式》之 原型模式
java·设计模式·原型模式
m0_7430484411 分钟前
初识Java EE和Spring Boot
java·java-ee
AskHarries13 分钟前
Java字节码增强库ByteBuddy
java·后端
MonkeyKing_sunyuhua30 分钟前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
天郁青30 分钟前
数据库交互的本地项目:后台管理系统
数据库·交互
小灰灰__33 分钟前
IDEA加载通义灵码插件及使用指南
java·ide·intellij-idea
马剑威(威哥爱编程)36 分钟前
MongoDB面试专题33道解析
数据库·mongodb·面试
夜雨翦春韭36 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
程序媛小果1 小时前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
小光学长1 小时前
基于vue框架的的流浪宠物救助系统25128(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库·vue.js·宠物