Group_concat显示有限的结果

时间:2012-08-14 07:46:18

标签: mysql

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

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

2 个答案:

答案 0 :(得分:2)

group_concat函数的最大长度为[From MySQL Documentation]

  

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

     

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

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

答案 1 :(得分:1)

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

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

SET [GLOBAL | SESSION] group_concat_max_len = val;