MySQL列长度最大为1026个字符

时间:2018-11-14 10:40:18

标签: mysql

我在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个字符后被截断。

如何为ad-hoc列设置/增加此值?

1 个答案:

答案 0 :(得分:4)

在调用SELECT查询之前,可以为此特定会话将group_concat_max_len的最大值设置为可能的最大值:

SET SESSION group_concat_max_len = @@max_allowed_packet;

来自Docs

  

结果被截断为由   group_concat_max_len系统变量,其默认值为   1024。尽管返回值的有效最大长度受的值限制,但可以将值设置得更高。   max_allowed_pa​​cket。