Mysql 踩坑
此文章用户记录mysql踩坑,持续更新中
SQL语法语法
mysql使用过程中,一些语法使用的踩坑点。
GROUP_CONCAT语法,字段超长被截取
完整语法如下
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
注意:由于group_concat默认的长度是1024,字段长度超过1024部分则会被截取。
通过命令 "show variables like ‘group_concat_max_len’ " 来查看group_concat 默认的长度:
mysql> show variables like 'group_concat_max_len';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| group_concat_max_len | 1024 |
+----------------------+-------+
1 row in set
在MySQL配置文件中添加配置:group_concat_max_len = -1 (-1为最大值或根据实际需求设置长度),配置后需要重启MySQL服务,查看如下所示:
mysql> show variables like 'group_concat_max_len';
+----------------------+------------+
| Variable_name | Value |
+----------------------+------------+
| group_concat_max_len | 4294967295 |
+----------------------+------------+
1 row in set
如果是生产环境下,不能擅自重启MySQL服务,则可以通过语句设置group_concat的作用范围,如:
SET GLOBAL group_concat_max_len=-1;
SET SESSION group_concat_max_len=-1;
注意LINUX 设置需要在/etc/my.cnf 且需要设置位置在
[mysqld]
group_concat_max_len = -1