MySQL GROUP_CONCAT不会返回所有结果

时间:2017-02-28 12:04:49

标签: mysql group-concat

我已经使用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,...)

任何人都有一些解决方案,为什么它不工作? 我在stackoverflow上搜索了类似的问题,但我找不到它..

3 个答案:

答案 0 :(得分:5)

您的最大长度可能已超过GROUP_CONCAT

  

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

LOGIN_REDIRECT_URL = '/home'
LOGOUT_REDIRECT_URL = '/home'

答案 1 :(得分:1)

默认情况下,FILEPARTLAST.pdf的最大长度为1,024。

您可以通过更改系统变量group_concat()的值来将其更改为更大的值。

documentation解释了这一点。

答案 2 :(得分:1)

请尝试以下代码。

$query->andFilterCompare('a_int_value', $this->b_int_value, '|');

希望这会有所帮助。