【问题标题】:MySQL truncating results, causing Warning: array_multisort(): Array sizes are inconsistentMySQL 截断结果,导致警告:array_multisort():数组大小不一致
【发布时间】:2011-05-20 03:48:50
【问题描述】:

我有两个数组。每个都通过以下方式从 MySQL 中提取;

$query ="SELECT country,";
$query.="GROUP_CONCAT(report) AS reports, ";
$query.="GROUP_CONCAT(topic) AS topics, ";
$query.="FROM reports GROUP BY country";

所以,它给了我两个这样的字符串:

   reports[$i] = 2011-05-11 A,2011-05-11 B,2011-05-11 C
   topics[$i]  = A,B,C

而且它工作得很好,但是,当报告字符串变得太长时,MySQL 只是截断它,然后我抛出

Warning: array_multisort(): Array sizes are inconsistent

因为我正在分解字符串。

显然,这正在破坏我的程序。但我不知道该怎么办,我有点陷入危机,因为我的老板说他要让整个公司都开始使用它。如何让 MySQL 不截断结果?

【问题讨论】:

    标签: php mysql truncate


    【解决方案1】:

    group_concat_max_len 设置为更高的值。 就个人而言,我会重写代码不使用 group_concat 函数,而是检索所有记录。

    【讨论】:

    • 非常感谢,我惊慌失措,以至于我什至无法思考。哈,这个项目已经三个月了。再次感谢你:)
    • @RVWard 没问题。这就是这个网站的用途,对吧?社区摇滚! :)
    • 请注意您应该全局设置它 (SET GLOBAL) 否则它将为当前会话设置!
    • 你们做 ROCK :) 我可以试着弄乱它而不是 group_concat,我只需要重新考虑程序如何在逻辑上运行。
    • 哎呀它不断恢复到截断。
    【解决方案2】:

    group_concat_max_len是在mysql配置文件中顺便设置的。之后需要重启mysql。

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 2012-12-27
      相关资源
      最近更新 更多