问题现象
CREATE DATABASE test CHARACTER SET utf8;
USE test;
CREATE TABLE user ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name varchar(500), sex tinyint(1) ) ENGINE = InnoDB CHARSET = utf8mb4;
# 插入500个字节的name
INSERT INTO user (name, sex) VALUES ('11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', 1);
INSERT INTO user (name, sex) VALUES ('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', 1);
INSERT INTO user (name, sex) VALUES ('33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333', 1);
SELECT group_concat(name) FROM user GROUP BY sex \G
utf8
1个汉字占3个字节,字母数字占1个字节。
22个3+2个逗号+500个1+500个2=1024个字节
问题分析
GROUP_CONCAT拼接的最大长度默认为1024字节,超过这个长度会被截断。
解决问题
调大最大长度阈值,设置当前会话生效:SET SESSION group_concat_max_len = 10240;
标签:GROUP,name,sex,500,user,MySQL,CONCAT,字节 From: https://www.cnblogs.com/WJQ2017/p/18114151