mysql group_concat()函數(shù)用法總結(jié)
本文實(shí)例講述了mysql group_concat()函數(shù)用法。分享給大家供大家參考,具體如下:
group_concat(),手冊(cè)上說明:該函數(shù)返回帶有來自一個(gè)組的連接的非NULL值的字符串結(jié)果。比較抽象,難以理解。
通俗點(diǎn)理解,其實(shí)是這樣的:group_concat()會(huì)計(jì)算哪些行屬于同一組,將屬于同一組的列顯示出來。要返回哪些列,由函數(shù)參數(shù)(就是字段名)決定。分組必須有個(gè)標(biāo)準(zhǔn),就是根據(jù)group by指定的列進(jìn)行分組。
group_concat函數(shù)應(yīng)該是在內(nèi)部執(zhí)行了group by語句,這是我的猜測(cè)。
1.測(cè)試語句:
SELECT group_concat(town) FROM `players` group by town
結(jié)果去查找town中去查找哪些值是一樣的,如果相等,就全部列出來,以逗號(hào)分割進(jìn)行列出,如下:
group_concat(town)
北京,北京
長(zhǎng)沙
2.測(cè)試:
SELECT group_concat( town ) FROM players
結(jié)果:
group_concat(town)
長(zhǎng)沙,北京,北京,
上面是否可以證明,group_concat只有與group by語句同時(shí)使用才能產(chǎn)生效果? 下面進(jìn)行了實(shí)際測(cè)驗(yàn)
3.測(cè)試常量對(duì)group_concat()的配置影響:
SET @@GROUP_CONCAT_MAX_LEN=4
手冊(cè)中提到設(shè)置的語法是這樣的:
SET [SESSION | GLOBAL] group_concat_max_len = val;
兩種有什么區(qū)別?
SET @@global.GROUP_CONCAT_MAX_LEN=4;
global可以省略,那么就變成了:SET @@GROUP_CONCAT_MAX_LEN=4;
4.使用語句
SELECT group_concat(town) FROM `players`
結(jié)果得到:
group_concat(town)
長(zhǎng)沙,北京,長(zhǎng)沙,北京
結(jié)論:group_concat()函數(shù)需要與group by語句在一起使用,才能得到需要的效果。
原因可以這樣理解:group_concat()得到是屬于x組的所有成員(函數(shù)里面列參數(shù)指定需要顯示哪些字段)。x組從哪里來?如果沒有g(shù)roup by進(jìn)行指定,那么根本不知道group_concat()根據(jù)哪個(gè)分組進(jìn)行顯示出成員。 所以,像上面沒有g(shù)roup by子句的時(shí)候,就顯示了長(zhǎng)沙和北京。
實(shí)際中什么時(shí)候需要用到這個(gè)函數(shù)?
假如需要查詢的結(jié)果是這樣:左邊顯示組名,右邊想顯示該組別下的所有成員信息。用這個(gè)函數(shù),就可以省去很多事情了。
另外,假如我這樣使用:SELECT group_concat( name, sex ) FROM `players` town。意義不大。group_concat()指定一個(gè)列是最好的情況。如果指定了多個(gè)列。那么顯示結(jié)果類似這樣:
group_concat(name,sex)
王滔,王小明男,劉惠女,舒明女
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
Windows下安裝MySQL 5.7.17壓縮版中遇到的坑
最近發(fā)現(xiàn)原來好端端的MySQL突然間不能用了,無奈只能重新下載了最新的MySQL 5.7.17 Community 壓縮版 for Windows 64-bit。但在安裝過程中遇到了一些意外的問題,通過查找相關(guān)資料也解決了,所以想著總結(jié)出來,方便需要的朋友們可以參考借鑒,下面來一起看看吧。2017-01-01MySQL字段類型與Java實(shí)體類類型對(duì)應(yīng)轉(zhuǎn)換關(guān)系詳解
這篇文章主要介紹了MySQL字段類型與Java實(shí)體類類型對(duì)應(yīng)轉(zhuǎn)換關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06mysql 8.0.20 winx64.zip壓縮版安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.20 winx64.zip壓縮版安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05MySQL中事務(wù)概念的簡(jiǎn)潔學(xué)習(xí)教程
這篇文章主要介紹了MySQL中的事務(wù)概念,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11step by step配置mysql復(fù)制的具體方法
每個(gè)服務(wù)器必須有唯一的server-id,默認(rèn)為1,為了防止沖突,一般建議設(shè)置為IP地址的后幾位,本例設(shè)置為12,通過修改主庫(kù)的my.cnf文件實(shí)現(xiàn)2013-09-09MySql創(chuàng)建分區(qū)的方法實(shí)例
mysql分區(qū)相對(duì)于mysql分庫(kù)分表便利很多,可以對(duì)現(xiàn)有的mysql大表添加分區(qū),也可以對(duì)已有分區(qū)的表擴(kuò)充分區(qū),下面這篇文章主要給大家介紹了關(guān)于MySql創(chuàng)建分區(qū)的相關(guān)資料,需要的朋友可以參考下2022-04-04MySQL主從搭建(多主一從)的實(shí)現(xiàn)思路與步驟
通過MySQL主從配置,可以實(shí)現(xiàn)讀寫分離減輕數(shù)據(jù)庫(kù)壓力,最近正好遇到這個(gè)功能,所以這篇文章主要給大家介紹了關(guān)于MySQL主從搭建(多主一從)的實(shí)現(xiàn)思路與步驟,需要的朋友可以參考下2021-05-05