1 查找原因
至此,只能从SQL语句出发了。网上搜了下 GROUP_CONCAT 数据截断的问题,答案都指向了 group_concat_max_len 这个参数,它的默认值正好是1024。可以直接在数据库中通过下面的命令查看这个默认值:
mysql>show variables like 'group_concat_max_len'
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| group_concat_max_len | 1024 |
+----------------------+-------+
1 row in set (0.00 sec)
mysql>
MySQL官方手册 对它的定义是The maximum permitted result length in bytes for the GROUP_CONCAT() function. ,也就是它限制了GROUP_CONCAT数据的长度。
2 解决问题
只要调整 group_concat_max_len到最大值就行了
mysql中 varchar(20)数据长度超过了是设置错误造成的,解决方法为:
1、通过my.ini(Linux下为my.cnf)的配置文件进行修改。一般my.ini文件在安装文件的根目录下。
2、系统是Windows10,安装目录下没有my.ini文件。
3、仔细找了一下,my.ini文件在ProgramData下。
4、打开配置文件,在 [mysqld] 的后面加入一行“ft_min_word_len=1”。PS:也可以设置成ft_min_word_len=2,具体情况根据自己的中文数据而定。
5、重启MySQL服务。注意,配置文件修改后一定要重启服务后才能生效。
6、查看一下最小索引长度,确定生效。SQL语句:SHOW GLOBAL VARIABLES LIKE '%__word_len%'。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)