当前位置: 首页 > 面试题库 >

使用Group_Concat和Concat时MySQL截断结果

那绪
2023-03-14
问题内容

我有以下SQL(我删除了一些selesct 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的数据,请添加group_concat_max_len=102400my.cnf或使用来查询服务器SET GLOBAL group_concat_max_len=102400



 类似资料:
  • 问题内容: 我创建它使用GROUP_CONCAT来连接的结果从数据类型的产品列的查询视图在一个名为列。问题是mysql截断了concat_products列的值。phpMyAdmin表示concat_products列的数据类型为 餐桌产品: concat_products_vw查看: 根据mysql手册 VARCHAR列中的值是可变长度的字符串, 长度可以指定为MySQL 4.0.2之前的1到2

  • 问题内容: 如果我在MySQL中有一个包含以下数据的表: 如何将其转换为以下格式? 我想我必须使用。但是我不确定它是如何工作的。 问题答案: 您可以在此处看到它的实现: Sql Fiddle演示 。正是您所需要的。 *分两步 *更新 拆分。首先,我们得到一个表,该表具有一个唯一值[Name,id]的所有值(用逗号分隔)。然后从获得的表中,将所有名称和值作为针对每个唯一id的单个值获得。请参见 SQ

  • 问题内容: 我试图截断一个表,但是为什么它不起作用?数据库查询中一定有问题吗? 理想情况下,我想一次性截断所有表-有可能吗? 如果您想知道我用来进行数据库查询的类的内容是什么, 谢谢。 编辑: 下面是我如何调用db对象, 问题答案: 谢谢你们的帮助!这是我的答案,

  • 我有一个代表. csv文件结构的自定义类,它稍后会读入该类的arrayList。它有以下标签: 这是简化的. csv文件: 当我将这些读入arrayList并将各个状态放在consolse上只是为了检查时,它会正确显示(IN_STOCK,OUT_OF_STOCK)。但是,当我尝试将其插入数据库时,它会被截断: java.sql.SQLException:第1行的列“Status”的数据被截断 以下

  • 问题内容: (注意:这个问题不是关于转义查询,而是关于转义结果) 我正在使用GROUP_CONCAT将多行合并为一个逗号分隔的列表。例如,假设我有两个(示例)表: 我想列出所有帖子以及对帖子发表评论的每个用户名的列表: 给我: 这很好用,但是如果用户名包含逗号会破坏用户列表。MySQL是否具有可以让我转义这些字符的功能?(请假定用户名可以包含任何字符,因为这只是示例架构) 问题答案: 如果用户名中

  • 问题内容: 我在MySQL查询中使用,将多行转换为单个字符串。但是,此函数结果的最大长度为字符。 我非常清楚,我可以更改参数以增加此限制: 但是,在我使用的服务器上,我无法更改任何参数。不能通过使用前面的查询,也不能通过编辑任何配置文件。 所以我的问题是:还有其他方法可以将多行查询的输出转换为单个字符串吗? 问题答案: 这个查询有点奇怪,但是不需要另一个查询来初始化变量。并且可以将其嵌入更复杂的查