mysql中把selct中的数据列表转换成逗号分隔的字符串

Posted ppjj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中把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

以上是关于mysql中把selct中的数据列表转换成逗号分隔的字符串的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL列中的数据以逗号隔开,如何查询?

使用SQL如何把用逗号等字符隔开的字符串转换成列表

如何在 MySQL 的多对多关系中以逗号分隔的列表中的一个字段连接数据?

把以逗号分隔的字符串转换成list

如何将逗号分隔的字符串转换为 Python 中的列表?

将逗号分隔的字符串转换为列表