2012-02-21 84 views
3

我需要清理我們的數據庫,需要更換質量是這樣的:MySQL:搜索和替換具有換行/回車的目標?

<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)進行搜索,其中新行是但沒有結果返回(我知道他們在那裏)。

任何人都知道嗎?

+0

有你試過\ r,\ n和\ r \ n? – 2012-02-21 20:50:27

+0

我試過了\ n(沒有結果),只是\ r(沒有結果),然後\ r \ n和一大堆結果回來了但不準確。 – 2012-02-21 21:19:03

+0

您是使用SQL語句執行更新還是使用PHPMyAdmin的某些特殊功能?在前一種情況下,請張貼您迄今爲止的聲明;在後者中,請將「phpmyadmin」標籤添加到您的問題中。 – ruakh 2012-02-21 22:47:57

回答

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>', '');