GROUP_CONCAT允许的最大长度?怎么通过呢?

时间:2014-08-30 18:16:15

标签: php mysql

在mySQL中我使用GROUP_CONCAT

SELECT
visits,
GROUP_CONCAT(token) as token
FROM general
GROUP BY visits

但问题是我有大量的行具有相同的访问次数并且使用PHP它不允许我打印所有内容。

有解决方法吗?

1 个答案:

答案 0 :(得分:5)

当我试图将group_concat变成一个太大的字符串时,我遇到了同样的问题。所以我要解决的是这个

SET SESSION group_concat_max_len = 10000000000000000;

这是一个临时函数,意味着它实际上不会永远改变它,而只是在查询会话的范围内。

我不建议永远更改它,但仅限于查询范围......这样你就不会为这一个函数耗费大量内存空间......当你可能不需要使用时它一直都是

除此之外,如果您真的想将其重置为更大的长度而不是为会话更改它,那么只需从查询中删除会话即可设置它。

所以你的查询应该是这样的

SET SESSION group_concat_max_len = 10000000000000000; -- # -- or whatever size you need to make it
SELECT 
    visits,
    GROUP_CONCAT(token) as token
FROM general
GROUP BY visits;

如果您仍然收到错误,因为@ spencer7593已正确注明..您可能需要更改 max_allowed_packet ...您可以从此SO POST < / p>