MySQL實(shí)現(xiàn)用逗號(hào)進(jìn)行拼接、以逗號(hào)進(jìn)行分割
MySQL用逗號(hào)進(jìn)行拼接、以逗號(hào)進(jìn)行分割
MySQL中,把查詢的結(jié)果拼接成一個(gè)字符串。
group_concat 函數(shù)
用法:group_concat (待拼接對(duì)象)
輸出:用逗號(hào)進(jìn)行拼接后的字符串
例子:
select group_concat(emp_no) as employees from dept_emp; ? /* 結(jié)果: employees ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | +-------------------------------------------------------------------+ | 10001,10002,10003,10004,10005,10006,10007,10008,10009,10010,10010 | +-------------------------------------------------------------------+ */
可以使用MySQL中的字符串拆分函數(shù)實(shí)現(xiàn):
substring_index(str,delim,count)
說(shuō)明:str: 被分割的字符串; delim: 分隔符; count: 分割符出現(xiàn)的次數(shù)
例子:
對(duì)于字符串 “209755,209756,209757” ,設(shè)置delim為 “,”,count為1,就會(huì)返回 “209755”;
其它參數(shù)不變,count為2,就會(huì)返回 “209755,209756”;其它參數(shù)不變,count為-1,就會(huì)返回 “209757”。
select colnum_name ,(select substring_index(substring_index(bill_ids,',',1),',',-1)) as bill_id1 ,(select substring_index(substring_index(bill_ids,',',2),',',-1)) as bill_id2 ,(select substring_index(substring_index(bill_ids,',',3),',',-1)) as bill_id3 from table_name;
若不知道要分割的字段究竟有幾個(gè)值(如可能某些行就1個(gè)值,某些有6個(gè)),可以考慮根據(jù)具有最多值的數(shù)量來(lái)選擇使用多少條
(select substring_index(substring_index(bill_ids,’,’,第幾個(gè)值),’,’,-1))語(yǔ)句,但是會(huì)有問題(待解決)
例子:
| 1 |
| 2,3,4 |
| 5,6 |
| 1 | 1 | 1 |
| 2 | 3 | 4 |
| 5 | 6 | 6 |
MySQL多行數(shù)據(jù)用逗號(hào)拼接返回一行
解決方案
先說(shuō)解決辦法,這里使用的是 GROUP_CONCAT 函數(shù),先來(lái)實(shí)例:
SELECT GROUP_CONCAT( `name` SEPARATOR ',' ) FROM uim_user?
這樣返回的多行數(shù)據(jù)會(huì)合并成一行,并且用逗號(hào)分割返回.
GROUP_CONCAT簡(jiǎn)單闡述
使用語(yǔ)法:
group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
一般與group by 分組一起使用,如果不分組默認(rèn)返回一行
而分組后會(huì)把相同分組類型的數(shù)據(jù)返回一行,并且可使用分割符號(hào)分割,去重,排序等操作
簡(jiǎn)單實(shí)例:
這里是按照部門分組,這樣同一個(gè)部門的人會(huì)返回一行并且用逗號(hào)分割
SELECT group_concat( distinct(name) SEPARATOR ',' ) name FROM uim_user group by dept_id
ps:開發(fā)中會(huì)有很多種需要合并結(jié)果集的情況,比如要查詢小明這個(gè)同學(xué)所有科目分?jǐn)?shù)返回一行,這樣使用來(lái)達(dá)到返回?cái)?shù)據(jù)的要求。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql 5.7.17 安裝配置方法圖文教程(windows10)
這篇文章主要為大家分享了mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價(jià)值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
MySQL中的唯一索引的簡(jiǎn)單學(xué)習(xí)教程
這篇文章主要介紹了MySQL中的唯一索引的簡(jiǎn)單學(xué)習(xí)教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11
與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得(二)--顯示寬度
MYSQL中的整數(shù)型數(shù)據(jù)類型都可以指定顯示寬度,而SQLSERVER不行2014-06-06

