[英]Maximum length allowed in GROUP_CONCAT ? How to pass it?
在mySQL中,我使用GROUP_CONCAT
SELECT
visits,
GROUP_CONCAT(token) as token
FROM general
GROUP BY visits
但问题是我有大量的行具有相同的访问次数并使用PHP它不允许我打印所有内容。
这有解决方法吗?
当我试图将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执行此操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.