2015-10-10 31 views
0

我正在研究一個基於WordPress的項目,我需要批量編輯數據庫中的帖子。MySQL查找並替換XXX,如果它介於YYY和ZZZ之間

目前,我有細胞,其中內容爲Text <pre> Text\r\nText\r\nText </pre>

,我需要做的是找到所有的\r\n字符串,並與\r\n\r\n替換它們。到目前爲止,我有這樣的:

UPDATE `table_name` 
SET `field_name` = replace(field_name, '\r\n', '\r\n\r\n\') 

的問題是,還有\r\n\文字<pre>標籤,我不想影響之外。這就是爲什麼我需要在調用替換之前執行諸如find (start: '<pre>' end: '</pre>')之類的操作。我只是不知道如何在MySQL中做到這一點。

在網頁搜索時,我發現了一些關於正則表達式的東西,但我不知道它是如何工作的。

+0

不幸的是,MySQL中沒有「regex repace」。你將需要一個PHP腳本來做到這一點。 – TrungDQ

回答

0

MySQL沒有正則表達式替換功能。我想說你有兩個選擇 - 要麼創建一個用戶定義的函數來做這種替換,或者,如果你不能/不知道如何去做,你必須使用一個不同的腳本/程序語言。它可以是例如一個PHP腳本,將連接到數據庫並做所需的替換。另一種方法是將包含帖子的錶轉儲到文件中,使用sed或類似的東西並再次導入數據。

使用sed的時間可能比PHP短,語法相當容易學習。

無論您選擇何種方式,請記住,之前進行備份總是一個好主意。

相關問題