数据库中用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;
相关推荐
hai4117419625 分钟前
mysql 与postgresql 的区别(gpt4)
数据库·mysql·postgresql
Freak嵌入式9 分钟前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
java·开发语言·数据结构·python·接口·抽象基类
知识分享小能手15 分钟前
mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(19)
大数据·开发语言·数据库·sql·学习·mysql·数据开发
前端小马19 分钟前
解决IDEA出现:java: 程序包javax.servlet不存在的问题
java·servlet·intellij-idea
白总Server29 分钟前
MongoDB解说
开发语言·数据库·后端·mongodb·golang·rust·php
冰镇毛衣35 分钟前
2.4 数据库表字段约束
数据库·sql·mysql
Snowbowღ41 分钟前
OpenAI / GPT-4o:Python 返回结构化 / JSON 输出
python·json·openai·api·gpt-4o·pydantic·结构化输出
&木头人&42 分钟前
oracle select字段有子查询会每次执行子查询吗
数据库·oracle
冰镇毛衣42 分钟前
数据库简介
开发语言·数据库·sql·oracle
(⊙o⊙)~哦43 分钟前
oracle查询历史操作记录
数据库·oracle