Заменить слово в тексте BLOB на MySQL - PullRequest
7 голосов
/ 19 октября 2010

У меня есть огромная таблица mysql (называемая tcountriesnew) и столбец (называемый slogen, blob type).В каждом из этих slogen больших двоичных объектов я хотел бы заменить слово, например: banana на apple.

К сожалению, я попытался напечатать все строки со словом банан, но это не помогло.работа.

select * from tcountriesnew where slogen like '%banana%';

Пожалуйста, помогите мне.

  • Что я пропустил, в чем проблема с моим запросом?
  • Как можнозаменить текст в BLOB-объекте?

Ответы [ 3 ]

8 голосов
/ 19 октября 2010

Зависит от того, что вы подразумеваете под «заменить» шоу в select:

select replace(slogen, 'bananas', 'apples') from tcountriesnew where slogen like '%bananas%';

Или обновить данные в таблице:

update tcountriesnew set slogen=replace(slogen, 'bananas', 'apples') where slogen like '%bananas%';

КСТАТИ. Почему вы используете blob для текста? Вы должны использовать тип text для текстовых данных и blob для двоичных данных.

2 голосов
/ 26 мая 2013

В некоторых случаях необходимо сохранять тексты BLOB.В моем случае, по какой-то причине разработчики Drupal 7 решили использовать BLOB-объекты для всех столбцов TEXT - это вне контроля разработчика.

Чтобы преобразовать BLOB-объект в текст, используйте функцию преобразования MySql.Затем вы должны сохранить его в базе данных и снова преобразовать в BLOB-объект, но MySQL автоматически обрабатывает это.Поэтому следующий запрос поможет:

UPDATE tcountriesnew 
SET slogen = replace(CONVERT(slogen USING utf8), 'bananas', 'apples')
WHERE slogen LIKE '%bananas%';

В MySQL 5.5 это полностью решило мою проблему.

Также настройте свой PhpMyAdmin для отображения данных BLOB-объектов

0 голосов
/ 19 октября 2010

Какую версию вы используете? Может быть, это ошибка: http://bugs.mysql.com/bug.php?id=27. В противном случае попробуйте привести ваш столбец BLOB-объектов.

...