2012-11-08 56 views
1

我很好奇为什么mySQL with group_concat(concat())不会显示结果的完整长度。对于更少的结果集合,它是完美的结果。但是,当另一组比方说,当结果超过12如何使用mysql group_concat(concat())而不用concat削减

MySQL代码:

SELECT province_id AS prov_id, province_name AS prov_name, count(tent_info.tid) AS ntent, 
GROUP_CONCAT(concat(tent_info.tuser, '-', tent_info.tname) 
ORDER BY tent_info.tname ASC 
SEPARATOR ',') AS tlist 
FROM tbl_province 
INNER JOIN tent_info ON tbl_province.province_id = tent_info.prov 
WHERE tbl_province.geo_id = '6' 
GROUP BY province_id 
ORDER BY province_name ASC 

的MySQL结果:

enter image description here 现在的问题是什么,我说。结果没有完全加载。我认为当结果超过12时。如下图所示。

enter image description here

嗯,我想可能是因为:

  1. 最大长度允许GROUP_CONCAT或
  2. 滥用CONCAT的()或
  3. 在TLIST一些错误发生,如空文字或无效字符

请建议。

回答

3

尝试将此变量长度更新为更大,直到找不到完整结果。 您可以在全局范围内设置变量&明智的会话。

SET SESSION group_concat_max_len = '20000'; 
+1

它现在: '$ _max_len = 'SET SESSION group_concat_max_len = 20000'; \t mysql_db_query($ dbname,$ _ max_len);' 谢谢。 – Wilf