Вопрос

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

Это было полезно?

Решение

вы пробовали команду 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) 

Другие советы

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

<Ол>
  • Создать временное поле как текст
  • Скопируйте поле большого двоичного объекта в поле temp: UPDATE tbl SET col_temp = CONVERT (col ИСПОЛЬЗУЯ latin1); В этом случае мой BLOB-объект содержал символы в кодировке latin1
  • Преобразовать фактическое поле в текстовый тип данных
  • Скопировать темп в фактическое поле
  • Удалить временный столбец
  • Не совсем понятно, но это сработало и без потери данных. Я использую версию: '5.1.50-community'

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top