Mysql中json格式数据查询、修改

article/2025/9/28 8:05:13

 测试数据:

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (`id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`json_data` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('10001', '张三', '{\"age\": \"22\", \"name\": \"张三\", \"code\": \"10001\", \"time\": \"2018-12-2--2020-12\", \"school\": \"北京大学\", \"status\": \"01\",  \"edu_backgroud\": \"本科\"}');
INSERT INTO `student` VALUES ('10002', '李四', '{\"age\": \"18\", \"name\": \"李四\", \"code\": \"10002\", \"time\": \"2018-12-2--2021-12\", \"school\": \"北京中学\", \"status\": \"01\",  \"edu_backgroud\": \"高中\"}');
INSERT INTO `student` VALUES ('10003', '王麻子', '{\"age\": \"8\", \"name\": \"王麻子\", \"code\": \"10003\", \"time\": \"2000-12-2--2007-12\", \"school\": \"北京小学\", \"status\": \"01\",  \"edu_backgroud\": \"小学\"}');
INSERT INTO `student` VALUES ('10004', '李白', '{\"age\": \"4\", \"name\": \"李白\", \"code\": \"10004\", \"time\": \"2018-12-2--2020-12\", \"school\": \"北京幼儿园\", \"status\": \"01\",  \"edu_backgroud\": \"幼儿园\"}');SET FOREIGN_KEY_CHECKS = 1;

查询:

SELECTid,name,json_data,json_extract(json_data,"$.name"),REPLACE(json_extract(json_data,"$.name"),'"',''),json_extract(json_data,"$.age"),json_extract(json_data,"$.school"),json_extract(json_data,"$.school")
FROM`student` 说明:此sql中json_extract函数用来处理json格式数据json_data是存接送格式数据字段$.age是引用json_data字段中json字段且直接引用的字段查询结果会带引号,可通过REPLACE函数替换。

结果截图示例:

 修改/更新:

修改json中一个值:
UPDATE `student` 
SET json_data = json_set( json_data, '$.age', '88' ) 
WHERENAME = '张三'修改json中多个值:
UPDATE `student` 
SET json_data = json_set( json_data, '$.age', '88','$.school', '清华大学' ) 
WHERENAME = '张三'说明:sql中json_set是Mysql用来更新数据,json_data是存json数据的字段$.age'、$.school是json中的字段名

结果截图示例:

 


http://chatgpt.dhexx.cn/article/wbdEL2Fg.shtml

相关文章

Android之JSON格式数据解析

JSON:JavaScript 对象表示法(JavaScript Object Notation)。独立于语言和平台,比 XML 更小、更快,更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。 Android平台自带了…

Python提取JSON格式数据

文章目录 前言:一、JSON使用1.导入json的包2.常用的方法 二、实战1.json.loads()2.jsonpath 前言: 我们经常会用到json数据,json数据格式主要是用来和不同语言之间进行交互比如你要给java端的提供数据,你需要将自己的数据转换为j…

解析JSON格式数据常见方法

待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name":"xiaowang"}, {"id":"10", "version":"2.0", "name":"lisi"}] 一、…

JSON.parseObject 解析JSON格式数据

fastjson是阿里巴巴开源产品之一,解析速度快。 下载地址(maven仓库):https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.53 // 当待解析的JSON字符串是简单对象类型的,即用大括号包围,此时采用JSONObject对象来处理…

JQuery 发送Json格式数据

简述&#xff1a; 需要封装一组Json格式的数据到服务器 知识点&#xff1a; 1. 调用jquery.json的库 2. AJAX Post 请求 Jquery下载地址 http://jquery.com/download/ Jquery.json http://code.google.com/p/jquery-json/ 代码&#xff1a; testSendJson.jsp <% page…

Json格式字符串转换成Json格式数据

1、json格式字符串 2、将json格式字符串转换成json格式 //json格式的字符串 String str "{ \"people\": [\n" "\n" "{ \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\&…

数据库中存储Json格式数据

在数据库中存储Json格式数据 1、表字段类型 json 2、Java代码有两种方式&#xff1a; 方式一 &#xff1a;属性定义成String类型。 往数据库中存储的值 必须为JSON格式的字符串&#xff0c;因为数据库中会做一次校验。 缺点&#xff1a;往数据库中存的数据是String类型&…

Mysql存储json格式数据

Mysql5.7版本以后新增的功能&#xff0c;Mysql提供了一个原生的Json类型&#xff0c;Json值将不再以字符串的形式存储&#xff0c;而是采用一种允许快速读取文本元素&#xff08;document elements&#xff09;的内部二进制&#xff08;internal binary&#xff09;格式。在Jso…

多路复用技术之时分复用

多路复用技术是通信技术领域的一个专业名词&#xff0c;从字面上的意思去理解就是将多路信号按照一定的规则共用同一条信道进行传输。 一、多路复用技术的分类 多路复用技术通常分为频分多路复用、时分多路复用、波分多路复用、码分多址和空分多址。 二、时分多路复用原理 …

“分集”与“复用”辨析

【注&#xff1a;本文中几乎所有文字与图片均来自网络&#xff0c;本人仅做了整理与归纳&#xff01;】 文章目录 分集与复用1. 分集与复用的概念1.1 分集1.2 复用 2. 分集与复用的目的2.1 分集的目的2.2 分集阶数与分集增益2.3 复用的目的 3. 分集与复用的分类3.1 分集技术3.…

认识LTE(七):LTE中的两种无反馈模式:发射分集(TM2)和开环空分复用(TM3)

认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff08;TM3&#xff09; 文章目录 认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff…

认识LTE(八):LTE中的反馈:闭环空分复用(TM4)

认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09; 文章目录 认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09;零.代码地址一.TM4到底反馈了什么&#xff1f;二.CQI反馈二.PMI 三.RI四.总结 零.…

图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址

目录 前言&#xff1a; 第1章 MIMO多天线技术概述 1.1 三大目的 1.2 六大分类 第2章 单天线SISO&#xff08;单输入单输出&#xff09; 2.1 概述 2.2 实现原理--多路“异频”《发送接收》对 第3章 接收分集MISO&#xff08;多输入单输出&#xff09;&#xff1a;冗余接…

[4G5G专题-28]:架构-什么是多天线技术与5G大规模天线阵列、波束赋形、高阶空分复用?

目录 第1章 多天线技术概述 1.1 LTE的多天线技术回顾 1.2 5G大规模天线阵列、波束赋形以及其动机 第2章 什么是波束赋形 2.1 波束赋形与大规模天线阵列的关系 2.2 波束赋形的定义 2.3 波束赋形要回答和解决的两个问题 2.4 常见的波束赋形相关的专业术语 第3章 Active …

复用,多址的区分以及其涉及的相关数据速率

复用技术 为了让尽可能多的手机使用同一个频段&#xff0c;无线通信设计了多址复用技术&#xff1a; 时分多路复用&#xff08;Time Division Multiplexing&#xff0c;TDM)要求各个子通道按时间片轮流地占用整个带宽。时间片的大小可以按一次传送一位、一个字节或一个固定大…

王道 —— 操作系统的四个特征

1、知识总览 操作系统有并发、共享、虚拟、异步四个基本特征&#xff0c;并发和共享是两个最基本的特征&#xff0c;二者互为存在条件&#xff1b; 2、操作系统的特征 —— 并发 并发&#xff1a;指两个或者多个时间在同一时间间隔内发生。这些事件宏观上是同时发生的&#x…

操作系统学习笔记——总体总结

看书太慢容易抓不住重点&#xff0c;所以在此按照操作系统的主要内容分别查网上博客资料进行学习。 一、引论 操作系统基本特性&#xff1a; 并发&#xff1a; 1.并行与并发&#xff1a;并行性是指两个或多个时间在同一时刻发送&#xff1b;并发性是指两个或多是事件在同一…

数据库脏读、不可重复读、幻读

1. 脏读 &#xff1a;脏读就是指当一个事务正在访问数据&#xff0c;并且对数据进行了修改&#xff0c;而这种修改还没有提交到数据库中&#xff0c;这时&#xff0c;另外一个事务也访问这个数据&#xff0c;然后使用了这个数据。 2. 不可重复读 &#xff1a;是指在一个事务内&…

关于可重复读和幻读

最近看到MySQL隔离性的知识&#xff0c;发现网上很多人说可重复读所针对的操作是update&#xff0c;然后亲自试验了一把&#xff0c;见下文。 首先我们知道在读提交隔离级别下&#xff0c;同一事物A中以相同的查询语句可能得到的结果不一致的情况&#xff0c;即不可重复读。这是…

可重复读如何解决幻读

学习之前的疑问&#xff1a; 可重复读的概念 与 不可重复读的概念 行锁gap锁(间隙锁) 快照读 与 当前读区别 快照读中的MVCC 当前读中的gap锁 和 行锁 前几天面试时被问到了mysql可重复读如何解决幻读的问题&#xff0c;之前脑子中的概念只有增加了共享锁和排他锁进行避免&…