CREATE TABLE `testmysql_group_concat` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`userid` varchar(50) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=650 DEFAULT CHARSET=utf8mb4 COMMENT='测试表'
select userid,GROUP_CONCAT(name SEPARATOR ',') from testmysql_group_concat group by userid
注意:
group_concat 有长度限制
Mysql的内部函数group_concat函数,在处理较多的数据时会出现截取的现象,原因是:在数据库的默认设置长度是1024;
修改方案:
①在配置文件中添加:
group_concat_max_len = 102400 #你要的最大长度
②执行语句,可以设置作用范围
SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len=102400;