mysql xml转换json(Mysql将查询结果集转换为JSON数据的实例代码)
类别:数据库 浏览量:2369
时间:2021-10-25 10:36:48 mysql xml转换json
Mysql将查询结果集转换为JSON数据的实例代码Mysql将查询结果集转换为JSON数据 前言学生表学生成绩表查询单个学生各科成绩(转换为对象JSON串并用逗号拼接)将单个学生各科成绩转换为数组JSON串将数组串作为value并设置key两张表联合查询(最终SQL,每个学生各科成绩)最终结果
前言
我们经常会有这样一种需求,一对关联关系表,一对多的关系,使用一条sql语句查询两张表的所有记录,例:一张学生表,一张学生各科成绩表,我们想要用一条SQL查询出每个学生各科成绩;
学生表
|
CREATE TABLE IF NOT EXISTS `student`( `id` INT UNSIGNED AUTO_INCREMENT, ` name ` VARCHAR (100) NOT NULL PRIMARY KEY ( `id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO student( id, name ) VALUES ( 1, '张三' ); INSERT INTO student( id, name ) VALUES ( 2, '李四' ); |
学生成绩表
|
CREATE TABLE IF NOT EXISTS `score`( `id` INT UNSIGNED AUTO_INCREMENT, ` name ` VARCHAR (100) NOT NULL `student_id` INT (100) NOT NULL , `score` VARCHAR (100) NOT NULL PRIMARY KEY ( `id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO score( id, name , student_id, score) VALUES ( 1, '数学' , 1, '95.5' ); INSERT INTO score( id, name , student_id, score) VALUES ( 2, '语文' , 1, '99.5' ); INSERT INTO score( id, name , student_id, score) VALUES ( 3, '数学' , 2, '95.5' ); INSERT INTO score( id, name , student_id, score) VALUES ( 4, '语文' , 2, '88' ); |
查询单个学生各科成绩(转换为对象JSON串并用逗号拼接)
|
SELECT GROUP_CONCAT(JSON_OBJECT( 'id' ,id, 'name' , name , 'student_id' ,student_id, 'score' , score)) as scores FROM scroe where student_id = 1; ## 查询结果 ## { "id" : 1, "name" : "数学" , "student_id" : 1, "score" : "95.5" },{ "id" : 2, "name" : "语文" , "student_id" : 1, "score" : "99.5" } |
将单个学生各科成绩转换为数组JSON串
|
SELECT CONCAT( '[' , GROUP_CONCAT(JSON_OBJECT( 'id' ,id, 'name' , name , 'student_id' ,student_id, 'score' , score)), ']' ) as scores FROM scroe where student_id = 1 ## 查询结果 ## [{ "id" : 1, "name" : "数学" , "student_id" : 1, "score" : "95.5" },{ "id" : 2, "name" : "语文" , "student_id" : 1, "score" : "99.5" }] |
将数组串作为value并设置key
|
SELECT CONCAT( '{"scoreData":[' , GROUP_CONCAT(JSON_OBJECT( 'id' ,id, 'name' , name , 'student_id' ,student_id, 'score' , score)), ']}' ) as scores FROM scroe where student_id = 1 ## 查询结果 ## { "scoreData" : [{ "id" : 1, "name" : "数学" , "student_id" : 1, "score" : "95.5" },{ "id" : 2, "name" : "语文" , "student_id" : 1, "score" : "99.5" }]} |
两张表联合查询(最终SQL,每个学生各科成绩)
|
SELECT id, name , ( SELECT CONCAT( '[' , GROUP_CONCAT(JSON_OBJECT( 'id' ,id, 'name' , name , 'student_id' ,student_id, 'score' , score)), ']' ) as scores FROM scroe WHERE student_id = stu.id) AS scores from student stu ## [{ "id" : 1, "name" : "数学" , "student_id" : 1, "score" : "95.5" },{ "id" : 2, "name" : "语文" , "student_id" : 1, "score" : "99.5" }] |
最终结果
ID | NAME | SCORES |
---|---|---|
1 | 张三 | [{“id”: 1, “name”: “数学”, “student_id”: 1, “score”: “95.5”},{“id”: 2, “name”: “语文”, “student_id”: 1, “score”: “99.5”}] |
2 | 李四 | [{“id”: 3, “name”: “数学”, “student_id”: 1, “score”: “95.5”},{“id”:4, “name”: “语文”, “student_id”: 1, “score”: “88”}] |
到此这篇关于Mysql将查询结果集转换为JSON数据的文章就介绍到这了,更多相关mysql结果集转换json数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/weixin_39157014/article/details/113989085
您可能感兴趣
- docker安装mysql后无法连接(Docker 安装 MySQL 并实现远程连接教程)
- mysql怎么使用null(MySQL null与not null和null与空值''''的区别详解)
- mysql拼接和过滤(mysql 如何动态修改复制过滤器)
- mysqlcount使用方法(详解 MySQL中count函数的正确使用方法)
- mysql中如何进行模糊查询(MySQL模糊查询用法大全正则、通配符、内置函数)
- mysql高级变量查询(MySQL 使用自定义变量进行查询优化)
- mysql数据库基本增删改查基本语句(MySQL表的增删改查基础教程)
- redhat6.5安装mysql(Redhat7.3安装MySQL8.0.22的详细教程二进制安装)
- mysql常用数据模型(MySQL数据库基于sysbench实现OLTP基准测试)
- mysql死锁情况(MySQL kill不掉线程的原因)
- mysql和mycat半主从复制项目(Linux如何使用 MyCat 实现 MySQL 主从读写分离)
- mysql自增主键创建过程(深入谈谈MySQL中的自增主键)
- mysqlgroupby用法(MySQL Group by的优化详解)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- 宝塔数据库不小心删了(宝塔面板MySQL数据库经常自动停止的解决方法)
- mysql改root密码命令(MySQL root密码的重置方法)
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
热门推荐
- python零基础入门详细教程(Python零基础入门学习之输入与输出)
- 云服务器最低配置可以吗(云服务器内存怎么选择?)
- linux nginx部署前端项目(nginx部署多前端项目的几种方法)
- ASP.NET生成二维码
- python中怎么连接mysql(python远程连接MySQL数据库)
- dedecms分页效果(dedecms重新定义cn_substr函数截取字数更准确)
- python3简单编程(Python3.5面向对象编程图文与实例详解)
- iis服务器无法启动(Windows服务器中IIS返回的网页错误代码大汇总及原因解)
- mysql中date_format日期格式化
- Asp.net中params的使用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9