Максимальная длина столбца MySQL составляет 1026 символов

Мой запрос в MySQL использует group_concat преобразовать значения в нескольких строках в один столбец.

SELECT
    user_id,
    group_concat(case when event = 'BORROWED' then book_id end 
                 separator ' ') as borrowed_books
FROM library_events 

Проблема, с которой я сталкиваюсь, заключается в том, что специальная колонка borrowed_books в котором значения объединяются, становится максимальным в 1026 символов. Я также видел, что строка в столбце усекается после 1026 символов.

Как я могу установить / увеличить это значение для специального столбца?

1 ответ

Решение

Прежде чем позвонить SELECT запрос, вы можете установить максимальное значение для group_concat_max_len до максимально возможного значения, для этого конкретного сеанса:

SET SESSION group_concat_max_len = @@max_allowed_packet;

Из Документов:

Результат усекается до максимальной длины, заданной системной переменной group_concat_max_len, значение которой по умолчанию равно 1024. Значение может быть установлено выше, хотя эффективная максимальная длина возвращаемого значения ограничена значением max_allowed_packet.

Другие вопросы по тегам