0

请帮忙,我使用 group_concat 来获取逗号分隔的数字,但它只显示了 3000 多个值中的 72 个。

SELECT GROUP_CONCAT(  `phone` ) 
FROM  `notify` 
LIMIT 0 , 4000
4

2 回答 2

2

group_concat 函数有一个最大长度 [来自MySQL 文档]

结果被截断为由 group_concat_max_len 系统变量给出的最大长度,其默认值为 1024。该值可以设置得更高,尽管返回值的有效最大长度受 max_allowed_pa​​cket 值的限制。在运行时更改 group_concat_max_len 值的语法如下,其中 val 是无符号整数: SET [GLOBAL | 会话] group_concat_max_len = val;

返回值是非二进制或二进制字符串,具体取决于参数是非二进制字符串还是二进制字符串。结果类型为 TEXT 或 BLOB,除非 group_concat_max_len 小于或等于 512,在这种情况下,结果类型为 VARCHAR 或 VARBINARY。

但是您可能不应该做您正在做的事情:最好是逐个获取行,然后让您的应用程序将它们连接到一个逗号分隔的字符串中。

于 2012-08-14T07:48:52.970 回答
1

group_concat 结果长度被限制(截断)为 group_concat_max_len 系统变量的值。此变量的默认值为 1024。

如果要更改变量的值,则语法为:

SET [GLOBAL | SESSION] group_concat_max_len = val;
于 2012-08-14T07:49:18.953 回答