MySQL问题 GROUP_CONCAT截断

问题现象

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;

posted on 2024-04-04 14:06  王景迁  阅读(5)  评论(0编辑  收藏  举报

导航