Replace a word in BLOB text by MySQL

后端 未结 3 1893
伪装坚强ぢ
伪装坚强ぢ 2021-01-02 08:02

I\'ve got a huge mysql table (called tcountriesnew) and a column (called slogen, blob type). In each of those slogen blobs I\'d like t

相关标签:
3条回答
  • 2021-01-02 08:25

    In some cases it is needed to save texts BLOB. In my case, for whatever reason Drupal 7 developers choose to use a blob for all TEXT columns - this is out of developer's control.

    To convert a blob to text, use the MySql convert function. Then you have to save it into the database and convert it again to blob - but this is handled automatically by MySQL. So the following query would do the trick:

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

    On MySQL 5.5, This resolved my issue completely.

    Also, configure your PhpMyAdmin to show Blob data

    0 讨论(0)
  • 2021-01-02 08:45

    Depends what you mean by "replace"; using replace to show modified text in select:

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

    Or update data in a table:

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

    BTW. Why are you using blob for text? You should use text type for textual data and blob for binary data.

    0 讨论(0)
  • 2021-01-02 08:50

    Which version are you using ? Maybe it's this bug : http://bugs.mysql.com/bug.php?id=27. Otherwise try to cast your blob column.

    0 讨论(0)
提交回复
热议问题