【问题标题】:Data Loss in mySQL Using MEDIUMTEXT and pages使用 MEDIUMTEXT 和页面在 mySQL 中丢失数据
【发布时间】:2010-10-06 14:02:22
【问题描述】:

GROUP_CONCAT 能够以某种方式将一篇文章的六“页”(每页存储为 TEXT)并扔到一个单独的 MEDIUMTEXT 中而不会丢失任何数据,但是有一些一页 比正常更长的文章(但仍然明显适合 TEXT 数据类型)丢失大量数据。有谁知道怎么回事?

原始查询:

SET group_concat_max_len = 16000000;
UPDATE Threads t SET t.Content = (SELECT GROUP_CONCAT(a.Content ORDER
BY a.PageID SEPARATOR '<!-- pagebreak -->') FROM MSarticlepages a
WHERE a.ArticleID = t.MSthreadID GROUP BY a.ArticleID);

再次感谢您花时间指导我无知的自己!

【问题讨论】:

    标签: mysql concatenation group-concat


    【解决方案1】:

    MySQL 5.0 (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat) 的参考手册指出:

    从 MySQL 5.0.19 开始,类型 GROUP_CONCAT() 返回的总是 VARCHAR 除非 group_concat_max_len 是 大于 512,在这种情况下,它 返回一个 BLOB。 (以前,它 返回一个 BLOB group_concat_max_len 大于 512 仅当查询包含 ORDER BY 子句。)

    根据此数据,返回类型将是 BLOB,而不是 MEDIUMTEXT。总的串联是否有可能超过 2^16(65536 字节),这是 BLOB 的限制?

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 2019-08-07
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      相关资源
      最近更新 更多