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 是不是有长度限制或它不能在文本字段上工作的其他原因的主要内容,如果未能解决你的问题,请参考以下文章

传递给 ADODB 的查询长度是不是有限制?

钥匙串中存储的字符串是不是有长度限制?

文字编辑框,如何限制行数,和每行的字数?

Internet Explorer 11 中的 window.postMessage 是不是有最大长度限制?

JS 对象中键(字符串)的长度是不是有限制?

mysql关于行长度有限制吗