256

MySQLのblobにテキストが保存されているレコードがたくさんあります。扱いやすくするために、データベースの形式をTEXTに変更したいと思います...データを中断しないように変更を簡単に行うためのアイデアはありますか?適切にエンコードする必要があると思いますか?

4

10 に答える 10

317

それは不要です。ただ ... の代わりに ..... を使用してSELECT CONVERT(column USING utf8) FROMくださいSELECT column FROM

于 2010-11-19T03:57:56.923 に答える
135

Blob をUTF-8エンコーディングで char(1000) に変換したいの例を次に示します。

CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)

これが彼の答えです。CAST については、おそらくもっと多くの情報がここにあります。少しでもお役に立てば幸いです。

于 2009-06-04T01:35:25.393 に答える
9

とても簡単にできます。

ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` LONGTEXT NULL DEFAULT NULL ;

上記のクエリは私にとってはうまくいきました。あなたにも役立つことを願っています。

于 2015-08-21T13:11:24.257 に答える
2

または、次の関数を使用できます。

DELIMITER $$

CREATE FUNCTION BLOB2TXT (blobfield VARCHAR(255)) RETURNS longtext
DETERMINISTIC
NO SQL
BEGIN
       RETURN CAST(blobfield AS CHAR(10000) CHARACTER SET utf8);
END
$$


DELIMITER ;
于 2013-07-08T15:32:09.253 に答える
0
SELECCT TO_BASE64(blobfield)  
FROM the Table

私のために働いた。

CAST(blobfield AS CHAR(10000) CHARACTER SET utf8) および CAST(blobfield AS CHAR(10000) CHARACTER SET utf16) は、取得したいテキスト値を表示しませんでした。

于 2021-02-22T17:20:13.707 に答える