在MySQL中我使用GROUP_CONCATGROUP_CONCAT允许的最大长度?如何通过它?
SELECT
visits,
GROUP_CONCAT(token) as token
FROM general
GROUP BY visits
但问题是,我有相同的访问行的数量庞大,并使用PHP它不允许我打印的一切。
是否有解决方法?
在MySQL中我使用GROUP_CONCATGROUP_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
另外请注意,'GROUP_CONCAT'函数返回的字符串长度也受**'max_allowed_packet ** **变量限制。 – spencer7593 2014-08-30 18:42:36
downvoter谨慎解释? – 2014-08-30 18:46:07
我得到这个错误'PHP解析错误:语法错误,意外的T_STRING' – EnexoOnoma 2014-08-30 18:51:50
'SET GROUP_CONCAT_MAX_LEN = 100000000000000000000000000000000000000000000'' – 2014-08-30 18:19:26
我想知道为什么downvoter浪费了downvote ......这是一个很好的问题。 – cybermonkey 2014-08-30 18:20:37
@MKhalidJunaid ...什么? – cybermonkey 2014-08-30 18:24:08