2014-08-30 4 views
0

В MYSQL я использую GROUP_CONCATМаксимальная длина, разрешенная в GROUP_CONCAT? Как это передать?

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

, но проблема в том, что у меня есть огромное количество строк с одинаковыми посещениями и с помощью PHP не позволяют мне печатать все.

Есть ли обходной путь для этого?

+0

'SET GROUP_CONCAT_MAX_LEN = 1000000000000000000000000000000000000000000000000;' –

+2

Я хочу знать, почему downvoter потратил впустую нисходящее ... это хороший вопрос. – cybermonkey

+0

@MKhalidJunaid ... что? – cybermonkey

ответ

2

Я столкнулся с той же проблемой, когда я пытался 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

+2

Также имейте в виду, что длина строки, возвращаемой функцией GROUP_CONCAT, также ограничена переменной ** 'max_allowed_packet' **. – spencer7593

+0

downvoter заботиться, чтобы объяснить? –

+0

Я получаю эту ошибку 'PHP Parse error: синтаксическая ошибка, неожиданная T_STRING' – EnexoOnoma

Смежные вопросы