質問

コンテンツをBLOBとして保持するmysqlデータベースがありますが、開発者がBLOBを使用することを選択した理由はなんでもありません。データをテキストに、データ型をテキストに変換することは可能ですか?

役に立ちましたか?

解決

alter tableコマンドを試しましたか?

alter table mytable change mycolumn mycolumn text; 

from http://forums.mysql.com/ read.php?103,164923,167648#msg-167648 CASTを使用できるようです。

新しい(TEXT)列を作成し、更新コマンドを入力できます:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 

他のヒント

フィールドをblobからテキストに変換すると、すべての文字が切り捨てられます> 127.私の場合、ヨーロッパのキャラクターがたくさんいるので、これはオプションではありませんでした。私がやったことは次のとおりです。

  1. テキストとして一時フィールドを作成
  2. blobフィールドをtempフィールドにコピーします。UPDATE tbl SET col_temp = CONVERT(col USING latin1);この場合、blobはlatin1でエンコードされた文字を保持しています
  3. 実際のフィールドをテキストデータ型に変換する
  4. tempを実際のフィールドにコピー
  5. 一時列を削除

正確ではありませんが、機能し、データ損失はありません。バージョン: '5.1.50-community'を使用しています

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