MySQL GROUP_CONCAT 不是 return 所有结果

MySQL GROUP_CONCAT doesn't return all results

我已经使用 GROUP_CONCAT 来获得用逗号分隔的结果 (,),但是当我看到时,GRUP_CONCAT 只返回 205 拆分数字,但在数据库中有 2448 个结果(不同 aid)。这是我的查询:

SELECT GROUP_CONCAT(`aid`) As favoriti 
FROM `z_web_favoriti` 
WHERE `kup_id`='1' AND `pos_id`='571'

当我执行时:

SELECT DISTINCT `aid` 
FROM `z_web_favoriti` 
WHERE `kup_id`='1' AND `pos_id`='571'

我得到以下结果:显示第 0 - 29 行(总共 2448 行,..)

有人知道为什么它不起作用的解决方案吗? 我在 Whosebug 上搜索过类似的问题,但我找不到它..

默认情况下,group_concat() 的最大长度为 1,024。

您可以通过更改系统变量的值将其更改为更大的值 group_concat_max_len

documentation 对此进行了解释。

请尝试以下代码。

SET GLOBAL group_concat_max_len=15000;
SELECT GROUP_CONCAT(`aid`) As favoriti 
FROM `z_web_favoriti` 
WHERE `kup_id`='1' AND `pos_id`='571'

希望这会有所帮助。

可能您已经超过 GROUP_CONCAT 最大长度。

The result is truncated to the maximum length that is given by the group_concat_max_len system variable, which has a default value of 1024. The value can be set higher, although the effective maximum length of the return value is constrained by the value of max_allowed_packet. The syntax to change the value of group_concat_max_len at runtime is as follows, where val is an unsigned integer:

SET [GLOBAL | SESSION] group_concat_max_len = val;