2011-03-26 52 views
12

的第一部作品,这里是查询:是有长度限制GROUP_CONCAT或其他原因,它不会在文本字段

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字段,但我无法找到关于为什么连接不能与文本字段一起工作的任何信息。

任何人都知道为什么这不起作用?

回答

43

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

 
SET [GLOBAL | SESSION] group_concat_max_len = val; 

更多信息Mysql 5 docs

+7

的字节,而不是字符..limited:如果你想改变变量的语法是值这个变量的默认值是1024

。所以如果你在utf8中使用文本,结果在~363个字符后被截断(参见[group_concat_max_len是字节还是字符?](http://ebergen.net/wordpress/2011/09/05/is-group_concat_max_len-in-字节 - 或字符/)) – 2013-09-19 10:36:33