MySQL Blob to Text (тип данных и данных) - PullRequest
1 голос
/ 27 октября 2009

У меня есть база данных mysql, которая хранит контент как большой двоичный объект, по какой-то причине эти разработчики решили использовать большой двоичный объект вне моего контроля. Можно ли преобразовать данные в текст, а тип данных в текст?

Ответы [ 2 ]

3 голосов
/ 27 октября 2009

вы пробовали команду alter table?

alter table mytable change mycolumn mycolumn text; 

из http://forums.mysql.com/read.php?103,164923,167648#msg-167648 похоже, что вы можете использовать CAST.

вы можете создать новый (TEXT) столбец, а затем заполнить его командой update:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 
1 голос
/ 23 мая 2011

Преобразование поля из BLOB-объекта в текст усекает все символы> 127. В моем случае у нас много европейских символов, так что это было невозможно.Вот что я сделал:

  1. Создайте временное поле как текст
  2. Скопируйте поле большого двоичного объекта в временное поле: UPDATE tbl SET col_temp = CONVERT (col USING latin1);В этом случае мой BLOB-объект содержал символы латинского алфавита
  3. Преобразовать фактическое поле в текстовый тип данных
  4. Копировать временное поле в фактическое поле
  5. Удалить временный столбец

Не совсем просто, но это сработало и без потери данных.Я использую версию: '5.1.50-community'

...