MySQL:搜索和;替换为有换行/回车的目标?

时间:2012-02-21 20:46:07

标签: mysql replace carriage-return linefeed

我需要清理我们的数据库,需要大规模替换这样的东西:

<div class="rtecenter"><br />
<font color="#990033"><strong>I'm so hot, I sometimes spontaneously combust.</strong></font><br />
<img src="http://i476.photobucket.com/albums/rr124/phoenix_oasis/coollogo_com_63811610.gif" alt="" /></div>

(我只是要删除它的所有实例)。我已经知道如何进行批量替换(我使用PHPMyAdmin),但问题是它有CR / LF,所以我不知道如何在查询中添加正确的字符串...为了测试,我尝试使用Char(10)或Char(13)进行搜索,其中新行但是没有返回结果,(我知道它们在那里)。

有人知道吗?

1 个答案:

答案 0 :(得分:4)

如果只有CR / LF,那么你可以使用这个查询 -

UPDATE table
SET
  column = REPLACE(column, '<div class="rtecenter"><br />\r\n<font color="#990033"><strong>I''m so hot, I sometimes spontaneously combust.</strong></font><br />\r\n<img src="http://i476.photobucket.com/albums/rr124/phoenix_oasis/coollogo_com_63811610.gif" alt="" /></div>', '');

如果有不同的行分隔符,则可以分两步执行:

UPDATE table
SET
  column = REPLACE(column, '\r', ''); -- replace all \r\n to \n

UPDATE table
SET
  column = REPLACE(column, '<div class="rtecenter"><br />\n<font color="#990033"><strong>I''m so hot, I sometimes spontaneously combust.</strong></font><br />\n<img src="http://i476.photobucket.com/albums/rr124/phoenix_oasis/coollogo_com_63811610.gif" alt="" /></div>', '');