以某种方式,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);
再次感谢您花时间指导我的无知自我!
答案 0 :(得分: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()返回的是 除非group_concat_max_len是,否则为VARCHAR 大于512,在这种情况下,它 返回一个BLOB。 (以前,它 返回了一个BLOB group_concat_max_len大于512 仅当查询包含ORDER BY时 子句。)
根据这些数据,返回类型将是BLOB,而不是MEDIUMTEXT。如果总连接数超过2 ^ 16(65536字节),这是BLOB的限制吗?