mysql中用group_concat把selct中的數據列表轉換成逗號分隔的字符串


登錄mysql,在test數據庫中建立一個表:

CREATE TABLE `shoufei` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  `xiangmu` varchar(20) NOT NULL,  `jiage` float NOT NULL,  `shuliang` int(11) NOT NULL,  `jine` float DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

 

 

 在表shoufei增加數據:

 

 在表中,查詢xiangmu字段,在查詢結果組成一個字符串:

SELECT GROUP_CONCAT(xiangmu) FROM shoufei;

 

在字符串有重復的值,把重復的值過濾

SELECT GROUP_CONCAT(DISTINCT shuliang) FROM shoufei;

 

 

 在查詢項目組成的字符串時,定義間隔符號

SELECT GROUP_CONCAT(xiangmu SEPARATOR '-') FROM shoufei;

 

 把字符串的字段的值升序排序(asc ,desc):

SELECT GROUP_CONCAT(xiangmu ORDER BY xiangmu ASC SEPARATOR '-') FROM shoufei;

 注意:

group_concat字符串的長度字節超過1024 則會被截斷,可以通過命令 "show variables like 'group_concat_max_len' " 來查看group_concat 默認的長度。

設置group_concat長度的操作方法:

(1)在MySQL配置文件中加入:

group_concat_max_len = 102400

(2)更簡單的操作方法,執行SQL語句:

SET GLOBAL group_concat_max_len = 102400;

SET SESSION group_concat_max_len = 102400;

注意:該方法缺點是重啟服務后設置失效。

 

本文轉自:https://jingyan.baidu.com/album/29697b91478e91ab20de3c9d.html?picindex=1

https://www.cnblogs.com/silentmuh/p/9473557.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM