我在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列设置/增加此值?
答案 0 :(得分:4)
在调用SELECT
查询之前,可以为此特定会话将group_concat_max_len
的最大值设置为可能的最大值:
SET SESSION group_concat_max_len = @@max_allowed_packet;
来自Docs:
结果被截断为由 group_concat_max_len系统变量,其默认值为 1024。尽管返回值的有效最大长度受的值限制,但可以将值设置得更高。 max_allowed_packet。