group_concat 是不是有长度限制或它不能在文本字段上工作的其他原因

Posted

技术标签:

【中文标题】group_concat 是不是有长度限制或它不能在文本字段上工作的其他原因【英文标题】:is there a length limit to group_concat or another reason why it would not work on a text fieldgroup_concat 是否有长度限制或它不能在文本字段上工作的其他原因 【发布时间】:2011-07-23 15:15:53 【问题描述】:

首先,这里是查询:

SELECT GROUP_CONCAT(title) title, GROUP_CONCAT(description) description,
skill_id, count(*)

FROM jobs j
INNER JOIN job_feed_details d
ON j.id = d.job_id
JOIN jobs_skills js
ON j.id = js.job_id
    WHERE moderated = 1
    group by skill_id

一切都按预期工作,除了描述字段只返回一个结果,而不是所有结果的串联。我怀疑这是因为描述是一个text 字段,但我找不到任何关于为什么连接不适用于文本字段的任何信息。

有人知道为什么这不起作用吗?

【问题讨论】:

【参考方案1】:

group_concat 结果长度被限制(截断)为 group_concat_max_len 系统变量的值。该变量的默认值为 1024。

如果你想改变变量的值,语法是:

设置 [全球 |会话] group_concat_max_len = val;

更多信息mysql 5 docs

【讨论】:

..受限于字节,而不是字符。因此,如果您在 utf8 中使用文本,结果会在 ~363 个字符后被截断(参见Is group_concat_max_len in bytes or characters?)

以上是关于group_concat 是不是有长度限制或它不能在文本字段上工作的其他原因的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL中group_concat有长度限制!默认1024(转载)

mysql中对于 GROUP_CONCAT 函数的长度限制处理

mysql group_concat()函数 长度限制修改办法

group_concat 函数长度限制解决

group_concat 函数长度限制解决

MySQL GROUP_CONCAT长度限制引发的一场灾难