【问题标题】:MySQL column length maxes out at 1026 charactersMySQL 列长度最大为 1026 个字符
【发布时间】:2018-11-14 10:40:17
【问题描述】:

我在 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 列的这个值?

【问题讨论】:

    标签: mysql


    【解决方案1】:

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

    SET SESSION group_concat_max_len = @@max_allowed_packet;
    

    来自Docs

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

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2017-04-04
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多