MySQL之Row XXX was cut by GROUP_CONCAT()错误解决
MySQL数据库,一个更 UPDATE 更新用到了 group_concat 函数,报:Row XXX was cut by GROUP_CONCAT() 的错误,但单独的查询没有报错。
错误含义是:GROUP_CONCAT 有最大的长度限制,超过最大长度就会被截断掉。由 group_concat_max_len 系统变量限制最大长度,其默认值为 1024。
GROUP_CONCAT(expr)函数
此函数返回一个字符串结果,其中包含来自组的串联非 NULL 值。 如果没有非 NULL 值,则返回 NULL。 完整的语法如下:
1 | GROUP_CONCAT([DISTINCT] expr [,expr ...] |
Or:
1 | mysql> SELECT student_name, |
group_concat_max_len函法
是 GROUP_CONCAT() 函数的最大允许结果长度(以字节为单位)。 默认值为 1024。
Command-Line Format | --group-concat-max-len=# |
---|---|
System Variable | group_concat_max_len |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
Yes |
Type | Integer |
Default Value | 1024 |
Minimum Value | 4 |
Maximum Value (64-bit platforms) | 18446744073709551615 |
Maximum Value (32-bit platforms) | 4294967295 |
查看group_concat_max_len
MySQL 系统变量通常有 全局 和 会话 两个级别的值。group_concat_max_len 默认都为 1024。
查看全局 group_concat_max_len
1 | SELECT @@global.group_concat_max_len; |
查看会话 group_concat_max_len
1 | SHOW VARIABLES LIKE '%group_concat_max_len%'; |
修改group_concat_max_len
在运行时更改 group_concat_max_len 值的语法如下,其中 val 是无符号整数:
1 | SET [GLOBAL | SESSION] group_concat_max_len = val; |
或在 my.ini 配置文件中 [mysqld] 下面设置
1 | [mysqld] |
MySQL之Row XXX was cut by GROUP_CONCAT()错误解决
http://blog.gxitsky.com/2022/07/08/MySQL-Error-Row-cut-by-group-concat/