MySQL基于group_concat()函數(shù)合并多行數(shù)據(jù)
一個很有用的函數(shù)
group_concat(),手冊上說明:該函數(shù)返回帶有來自一個組的連接的非NULL值的字符串結(jié)果。
通俗點理解,其實是這樣的:group_concat()會計算哪些行屬于同一組,將屬于同一組的列合并顯示出來。要返回哪些列,由函數(shù)參數(shù)(就是字段名)決定。分組必須有個標(biāo)準(zhǔn),就是根據(jù)group by指定的列進行分組。
合并的字段分隔符默認為逗號,可通過參數(shù)separator指定。
比如在student表中,有如下5條數(shù)據(jù):
有要求如下:“小明”的兩行成績可以放在一行展示,“小紅”的兩行成績也放在一行展示!
那么就可以使用
SELECT name,group_concat(subject,score) FROM student group by name;
查詢結(jié)果如下:
也可以自定義分隔符
SELECT name,group_concat(subject,score separator '--') FROM student group by name;
查詢結(jié)果如下:
如果不使用group by name;會怎么樣呢?
SELECT name,group_concat(subject,score) FROM student;
查詢結(jié)果如下(只展示一行了,跟name屬性無關(guān)了):
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在阿里云的CentOS環(huán)境中安裝配置MySQL的教程
這篇文章主要介紹了在阿里云的CentOS環(huán)境中安裝配置MySQL的教程,注意一下文章開頭所提到的系統(tǒng)自帶MariaDB的問題,需要的朋友可以參考下2015-12-12mysql如何將數(shù)據(jù)庫中的所有表結(jié)構(gòu)和數(shù)據(jù)導(dǎo)入到另一個庫
介紹了如何使用mysqldump命令備份和導(dǎo)入數(shù)據(jù)庫,以及創(chuàng)建目標(biāo)數(shù)據(jù)庫的步驟,首先使用mysqldump備份源數(shù)據(jù)庫,然后在目標(biāo)數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫,并將備份文件導(dǎo)入到目標(biāo)數(shù)據(jù)庫,確保數(shù)據(jù)結(jié)構(gòu)和內(nèi)容完整復(fù)制,提到了DataGrip、Navicat在導(dǎo)入導(dǎo)出過程中可能出現(xiàn)的問題2024-10-10如何使用MySQL查詢某個列中相同值的數(shù)量統(tǒng)計
這篇文章的主要內(nèi)容是通過MySQL查詢某個列中相同值的數(shù)量統(tǒng)計,文章簡潔明了,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-07-07Ubuntu10下如何搭建MySQL Proxy讀寫分離探討
MySQL Proxy是一個處于你的Client端和MySQL server端之間的簡單程序,它可以監(jiān)測、分析或改變它們的通信2012-11-11利用MySQL統(tǒng)計一列中不同值的數(shù)量方法示例
這篇文章主要給大家介紹了利用MySQL統(tǒng)計一列中不同值的數(shù)量的幾種解決方法,每種方法都給了詳細的示例代碼供大家參考學(xué)習(xí),相信對大家具有一定的參考價值,需要的朋友們下面跟隨小編一起來看看吧。2017-04-04