数据库中用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;
相关推荐
秋饼几秒前
【深度剖析MySQL五大核心模块:从架构到实践】
数据库·mysql·架构
雄鸡三声天下白1 分钟前
js复制文本到剪贴板,以及navigator.clipboard 会提示 is undefined
前端·javascript·数据库
不吃葱的胖虎2 分钟前
根据Excel模板,指定单元格坐标填充数据
java·excel
k***92162 分钟前
C语言模拟面向对象三大特性与C++实现对比
java·c语言·c++
致Great3 分钟前
使用 GRPO 和 OpenEnv 微调小型语言模型实现浏览器控制
数据库·人工智能·深度学习·语言模型·自然语言处理·agent·智能体
野生技术架构师3 分钟前
SpringBoot健康检查完整指南,避免线上事故
java·spring boot·后端
代码游侠6 分钟前
应用——SQLite3 C 编程学习
linux·服务器·c语言·数据库·笔记·网络协议·sqlite
疯狂成瘾者7 分钟前
Lombok 可以生成哪些类方法
java·tomcat·maven
aerror8 分钟前
JETFAY RX121BR V2 多协议小比例静改动接收机说明书
json
于樱花森上飞舞8 分钟前
【多线程】CAS和哈希表
java·数据结构·java-ee