使用 Group_Concat 和 Concat 时 MySQL 截断结果

标签 mysql sql

我有以下 SQL(我删除了一些选择 fi:

SELECT node_revisions.title                          AS 'Task', 
       node_revisions.body                           AS 'Description', 
       Date_format(field_due_date_value, '%e/%c/%Y') AS 'Due Date', 
       users.name                                    AS 'User Name', 
       (SELECT GROUP_CONCAT(Concat(CHAR(10),Concat_ws( ' - ', name, From_unixtime( TIMESTAMP, 
               '%e/%c/%Y' )),CHAR(10),COMMENT))
        FROM   comments 
        WHERE  comments.nid = content_type_task.nid) AS 'Comments' 
FROM   content_type_task 
       INNER JOIN users 
         ON content_type_task.field_assigned_to_uid = users.uid 
       INNER JOIN node_revisions 
         ON content_type_task.vid = node_revisions.vid 
ORDER  BY content_type_task.nid DESC 

这会拉回我的所有任务以及与任务相关的所有评论。我遇到的问题是评论字段;使用 *GROUP_CONCAT* 创建,正在截断输出。我不知道为什么,也不知道如何克服这个问题。 (它看起来有 341ish 个字符)

最佳答案

GROUP_CONCAT() 默认限制为 1024 字节。

要解决此限制并允许最多 100 KB 的数据, 在 my.cnf 中添加 group_concat_max_len=102400 或使用 SET GLOBAL group_concat_max_len=102400 查询服务器。

关于使用 Group_Concat 和 Concat 时 MySQL 截断结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469474/

相关文章:

php - sql查询重叠时间

sql - 将单个文本单元格拆分为多行并复制其他列

php - Mysql group by 获取最后一行

php - 如何将url slug添加到php mysql中的现有数据

java - 使用 MySQL 和 JSP 的乌尔都语 (UTF-8) 数据

mysql - SQL 中以人类可读格式排序

php - 将 string 值与 int 值相加,两者都是数字

php - 如何检查 mysql 列是否不为 NULL?

sql - Oracle SQL - 识别顺序值范围

sql - MERGE 语句问题 - 分号错误 (SQL Server 2008)