最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實例代碼

 更新時間:2021年03月29日 14:38:42   作者:半路勇者  
這篇文章主要介紹了Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù) 前言學生表學生成績表查詢單個學生各科成績(轉(zhuǎn)換為對象JSON串并用逗號拼接)將單個學生各科成績轉(zhuǎn)換為數(shù)組JSON串將數(shù)組串作為value并設(shè)置key兩張表聯(lián)合查詢(最終SQL,每個學生各科成績)最終結(jié)果

前言

我們經(jīng)常會有這樣一種需求,一對關(guān)聯(lián)關(guān)系表,一對多的關(guān)系,使用一條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, '數(shù)學', 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, '數(shù)學', 2, '95.5' );
INSERT INTO score( id, name, student_id, score) VALUES ( 4, '語文', 2, '88' );

查詢單個學生各科成績(轉(zhuǎn)換為對象JSON串并用逗號拼接)

SELECT GROUP_CONCAT(JSON_OBJECT( 
'id',id,'name',name,'student_id',student_id, 'score', score)) as scores FROM scroe where student_id = 1;
## 查詢結(jié)果
## {"id": 1, "name": "數(shù)學", "student_id": 1, "score": "95.5"},{"id": 2, "name": "語文", "student_id": 1, "score": "99.5"}

將單個學生各科成績轉(zhuǎn)換為數(shù)組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
## 查詢結(jié)果
## [{"id": 1, "name": "數(shù)學", "student_id": 1, "score": "95.5"},{"id": 2, "name": "語文", "student_id": 1, "score": "99.5"}]

將數(shù)組串作為value并設(shè)置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
## 查詢結(jié)果
## {"scoreData": [{"id": 1, "name": "數(shù)學", "student_id": 1, "score": "95.5"},{"id": 2, "name": "語文", "student_id": 1, "score": "99.5"}]}

兩張表聯(lián)合查詢(最終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": "數(shù)學", "student_id": 1, "score": "95.5"},{"id": 2, "name": "語文", "student_id": 1, "score": "99.5"}]

最終結(jié)果

ID NAME SCORES
1 張三 [{“id”: 1, “name”: “數(shù)學”, “student_id”: 1, “score”: “95.5”},{“id”: 2, “name”: “語文”, “student_id”: 1, “score”: “99.5”}]
2 李四 [{“id”: 3, “name”: “數(shù)學”, “student_id”: 1, “score”: “95.5”},{“id”:4, “name”: “語文”, “student_id”: 1, “score”: “88”}]

到此這篇關(guān)于Mysql將查詢結(jié)果集轉(zhuǎn)換為JSON數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql結(jié)果集轉(zhuǎn)換json數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • windows10安裝mysql5.7.18教程

    windows10安裝mysql5.7.18教程

    windows10安裝mysql5.7.18是這樣安裝的嗎?這篇文章主要為大家詳細介紹了win10下mysql5.7.18安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • MySQL批量插入唯一索引沖突的幾種避免辦法

    MySQL批量插入唯一索引沖突的幾種避免辦法

    我們在進行大批量的數(shù)據(jù)插入時,遇到唯一索引沖突是經(jīng)常的事,本文主要介紹了MySQL批量插入唯一索引沖突的幾種避免辦法,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • mysql 5.7.14 下載安裝配置方法圖文教程

    mysql 5.7.14 下載安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.14 下載安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-08-08
  • MySql學習心得之存儲過程

    MySql學習心得之存儲過程

    之前總是在MSSQL上寫存儲過程,沒有在MYSQL上寫過,也基本沒有用過,今天需要用到MYSQL,研究了下,把項目的需要的存儲過程寫了一部分,寫一下工作總結(jié)。這里沒有給出數(shù)據(jù)庫結(jié)構(gòu),不討論SQL語句的細節(jié),主要探討存儲過程語法,適合有基礎(chǔ)的人。
    2014-06-06
  • MySQL5.7如何修改root密碼

    MySQL5.7如何修改root密碼

    這篇文章主要為大家詳細介紹了MySQL5.7修改root密碼的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL通透詳解架構(gòu)設(shè)計

    MySQL通透詳解架構(gòu)設(shè)計

    這篇文章主要介紹了MySQL架構(gòu)設(shè)計相關(guān)基礎(chǔ)與原則,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2022-02-02
  • MySQL8.0新特性之不可見主鍵的使用

    MySQL8.0新特性之不可見主鍵的使用

    MySQL8.0.30版本引入不可見主鍵,它可以自動為沒有顯式指定主鍵的?InnoDB?表創(chuàng)建一個不可見的主鍵,本文主要介紹了MySQL8.0新特性之不可見主鍵的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • 簡述MySQL 正則表達式

    簡述MySQL 正則表達式

    大家都知道MySQL可以通過 LIKE ...% 來進行模糊匹配,MySQL 同樣也支持其他正則表達式的匹配, MySQL中使用 REGEXP 操作符來進行正則表達式匹配。對mysql正則表達式知識感興趣的朋友一起看看吧
    2016-11-11
  • Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案

    Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解

    這篇文章主要介紹了Mysql出現(xiàn)問題:error?while?loading?shared?libraries:?libaio解決方案的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySql 5.6.35 winx64 安裝詳細教程

    MySql 5.6.35 winx64 安裝詳細教程

    這篇文章主要介紹了MySql 5.6.35 winx64 安裝詳細教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02

最新評論

莱芜市| 泰宁县| 大兴区| 三亚市| 阿拉尔市| 依兰县| 金华市| 大悟县| 南汇区| 金山区| 阿克| 阜平县| 博野县| 马关县| 十堰市| 辽源市| 深州市| 望谟县| 新蔡县| 义乌市| 碌曲县| 祁东县| 连城县| 兴城市| 三亚市| 达拉特旗| 达孜县| 海门市| 修文县| 江山市| 保山市| 朔州市| 营山县| 左权县| 商河县| 广宗县| 凤阳县| 阿拉善左旗| 喀喇沁旗| 宝兴县| 巩留县|