MEDIUMTEXT とページを使用した mySQL でのデータ損失
-
22-08-2019 - |
質問
どういうわけか、group_concatは、記事の6つの「ページ」(テキストとして保存されています)をまとめて、データを失うことなく単一の中テキストに投げ込むことができますが、通常よりも長い1ページの記事があります(ただし、明らかに適合しますテキストデータ型)は、かなりの量のデータを失います。何が起こっているか知っている人はいますか?
元のクエリ:
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 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が512を超えない限り、常にVarcharです。その場合、ブロブを返します。(以前は、クエリに条項による注文が含まれている場合にのみ、Group_concat_max_lenが512を超えるBlobを返しました。)
このデータに基づくと、戻り値の型は MEDIUMTEXT ではなく BLOB になります。連結の合計が BLOB の制限である 2^16 (65536 バイト) を超える可能性はありますか?
所属していません StackOverflow