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;
我已经使用 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;