【问题标题】:How to use mysql group_concat(concat()) without concat cuts如何在没有 concat 切割的情况下使用 mysql group_concat(concat())
【发布时间】:2012-10-28 06:39:21
【问题描述】:

我很好奇为什么带有 group_concat(concat()) 的 mySQL 没有按预期显示结果的完整长度。对于较少的结果集,它是好的 - 结果完美显示。但是当另一组让我们说当结果超过 12 时。

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 结果:

现在问题是我说的。结果没有完全加载。我假设当结果大于 12 时。如下图所示。

我想这可能是因为:

  1. group_concat 允许的最大长度或
  2. 误用 concat() 或
  3. tlist 中出现一些错误,例如空文本或无效字符

请提出建议。

【问题讨论】:

    标签: mysql sql select concat group-concat


    【解决方案1】:

    尝试将此变量长度更新为更多,直到找不到完整结果。 您可以在全局和会话方面设置变量。

    SET SESSION group_concat_max_len = '20000';
    

    【讨论】:

    • 现在可以使用了:$_max_len = 'SET SESSION group_concat_max_len=20000'; mysql_db_query($dbname,$_max_len); 谢谢。
    • 在数字两边加上引号会产生错误。否则它正在工作。
    猜你喜欢
    • 2012-11-07
    • 2011-11-23
    • 2017-10-15
    • 2011-06-24
    • 2015-03-30
    • 2021-11-24
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多