2012-07-25 117 views
0

可能重複:
How to do a regular expression replace in MySQL?MySQL查詢字符串替換

我試圖取代以 ' 「取而代之的是」'弦運動= qwertysomerandomtext?'。

我嘗試使用通配符來表示'?campaign =%_「,並用'''替換。但發現通配符不與替換工作。

有沒有其他方法可以解決這個問題?我想過使用類似substring的東西。但到目前爲止,沒有發現對我有用的東西。

希望有人可以幫助我解決這個問題。

問候 BNZ

+0

有沒有一種方法可以預處理表格? (update x set col =「where col like'?campaign =%') – stb 2012-07-25 12:55:12

+0

@lqez,沒有重複,因爲簡單的替換不需要正則表達式 – MvG 2012-07-25 13:56:09

+0

@MvG,OMG,它的確如此,我的錯誤,很好的答案。 – lqez 2012-07-25 13:58:00

回答

1

我嘗試更換與 '?campaign=qwertysomerandomtext"'開始和'"'替換字符串。

考慮這一請求從字面上看,它成爲

UPDATE t SET s = '"' WHERE s = '?campaign=qwertysomerandomtext"' 

我從你的問題複製的雙引號,無論是在搜索字符串的結束和替換字符串內。如果這是一個錯誤,請調整。

如果隨機文本是一個佔位符,應該是一個通配符,在你的第二段所述,然後使用

UPDATE t SET s = '"' WHERE s = '?campaign=%_"' 

如果要替換的文本是在其他一些字符串的結尾,而不是在該beginnning你問的方式,那麼你可以做

UPDATE t SET s = LEFT(s, LOCATE('?campaign=', s)) WHERE s = '?campaign=%_"' 

此標識的戰役東西的位置,並刪除並遵循一切。

不需要正則表達式。一般來說,你可以通過結合LOCATE,LEFT,RIGHT,SUBSTRCONCAT來實現。