質問

どういうわけか、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 バイト) を超える可能性はありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top