【问题标题】:What is the maximum allowance for group_concat_max_len in MySQL?MySQL 中 group_concat_max_len 的最大允许值是多少?
【发布时间】:2014-12-20 15:21:45
【问题描述】:

我正在使用 group_concat 将很多行连接成一个。

我使用以下方法将组 concat 设置为 10000:

SET group_concat_max_len = 10000;

但即便如此,我的输出单元格仍然不完整,并以...结尾

我尝试设置 group_concat_max_len = 20000,即使这样也没有用。

我还尝试将 group_concat_max_len 设置为 99999999。它仍然没有完成我的输出文本。我检查了其中一个组 concat 在 Length = 230 个字符处停止,然后给出 ...

还有其他方法吗?

【问题讨论】:

  • @Mihai,为什么不将其发布为答案?
  • @Rahul Eh,只是一个快速的谷歌搜索,我更感兴趣的是学习一些东西,而不是打破点银行。
  • 在任何查询之前使用SET SESSION group_concat_max_len =..
  • 是的,我在 Mihai 发表评论后大约 1 分钟发布了我的答案。如果我只想发布一个没有描述性文字的链接,我可能会同时发布。我也不太在乎这些点,但是如果仅在 cmets 中回答了问题,则它们始终保留在“未回答”队列中。不发布真实答案的人正在破坏 StackOverflow 的预期用途。

标签: mysql mysql-workbench group-concat


【解决方案1】:

对于 32 位系统,最大值为 4294967295

对于 64 位系统,最大值为 18446744073709551615。

您可以使用

为当前会话设置变量
SET SESSION group_concat_max_len=4294967295;

要设置变量永远使用

SET GLOBAL group_concat_max_len=4294967295;

(见http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len

【讨论】:

    【解决方案2】:

    查看此链接:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_group_concat_max_len

    所有 MySQL 配置变量都记录在该页面上,包括最小值、最大值、默认值等详细信息,是否可以全局设置或按会话设置,是否可以在正在运行的实例上更改它们或是否需要重新启动,以及其他使用说明。

    group_concat_max_len 的最大值为 18446744073709551615。

    group-concat 字符串不以“...”结尾 如果您尝试对太多文本进行分组,它只会被截断。所以我想知道问题是否不在于 MySQL 的设置,而在于您的单元格的显示。

    【讨论】:

    • 我现在将其设置为最大 (18446744073709551615) 我的绳子仍然在之前被切断的地方被切断。因此,这种变化并没有明显地生效。我关闭了我的 MySQL 工作台并重新启动它。但我可能需要重新启动 MySQL 实例。
    • 就像我说的,这可能是显示的限制,而不是 MySQL 服务器。
    • 是的,就是这样。您可以尝试像select repeat('a', 1024*1024) 这样的查询并在那里看到“...”。这是 MySQL Workbench 仅显示字符串的有限前缀的问题,即使服务器已发送回一个长字符串。
    • 是的。它以编程方式工作。因此,截断发生在客户端而不是服务器端。
    • 如果您使用的是工作台,您可以右键单击该列并选择“在查看器中打开值”以查看整个字符串
    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2014-12-31
    • 2020-12-14
    • 2018-08-06
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多