2009-02-10 66 views
0

不知何故,GROUP_CONCAT能夠將文章的六個「頁面」(每個文檔都存儲爲TEXT)四捨五入到一個MEDIUMTEXT中,而不會丟失任何數據,但有一頁 文章比正常時間更長(但顯然符合TEXT數據類型),這會丟失大量數據。任何人都知道發生了什麼?mySQL中的數據丟失使用MEDIUMTEXT和頁面

原始查詢:

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); 

抽出來指導我的無知者的自我時間再次感謝!

回答

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的限制嗎?