【问题标题】:GROUP_CONCAT() mysql returns limited charactersGROUP_CONCAT() mysql 返回有限的字符
【发布时间】:2015-04-07 08:22:24
【问题描述】:

我要两张桌子

tblColorLibrary

id   name
1     test color

tblColors

id  libraryId  colorCode  name
1     1           #fff     Prime Color
2     1           #ddd     Secondry Color
3     1           #E2CFC7  Favorite Color

以下是我的查询:

$stmt ="SELECT a.id, a.isActive as isActive, a.name as title, GROUP_CONCAT(b.colorCode ) as colors, GROUP_CONCAT(b.name) as name FROM ".$this->tblLibrary." as a JOIN tblcolors as b ON a.id = b.libraryId GROUP BY a.id ORDER BY b.id ASC";

这个查询会返回这样的结果

Array
(
    [0] => Array
        (
            [id] => 1
            [isActive] => Y
            [title] => test
            [colors] => #fff,#ddd,#E2CFC7
            [name] => Prime Color, Secondry Color, Favorite Color
        )

)

在我的记录有限之前一切都很好。当我在 tblColors 中有超过 150 条记录时,名称键只提供有限数量的字符。没有得到完整的记录。

我想组连接会有限制。

【问题讨论】:

标签: php mysql group-concat


【解决方案1】:

在 mysql 数据库中增加你的 group_concat_max_len。默认设置为 1024。您可以使用查询来更新它

SET GLOBAL group_concat_max_len=100000

SET SESSION group_concat_max_len = 1000000;

【讨论】:

  • 添加你的答案后,它在我的本地服务器上运行,而不是在实时服务器上,希望我们没有权限在实时服务器上设置这个,你知道吗?
  • 运行这个查询 $sql = "SET SESSION group_concat_max_len = 1000000;"在你的 mysql 查询之前
  • 是的,我设置了,它开始在本地 wamp 上工作,但是当我将它移到生产服务器时它不工作:-(
  • 我知道既然它是共享服务器,我可以做任何其他想法来修改除此之外的长度吗?
【解决方案2】:

检查 group_concat_max_len 的值并根据需要增加它。

show variables like 'group_concat_max_len';

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2013-08-03
    • 1970-01-01
    • 2010-11-19
    • 2018-10-23
    • 1970-01-01
    • 2012-06-22
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多