2011-12-12 76 views
0

短版: 我需要MySQL的代碼,這將改變MySQL的查找/替換在開始和結束字符串的字符,而不是字符串的中間

[HREF =「HTTP://一,隨機domain.com 「]超級鏈接[/ HREF]

< A HREF =」 http://a-random-domain.com」 >超級鏈接< /一個>

  • 不搞亂域部分,和
  • 而不會意外地轉換時可能發生的在字段的文本的「]任何無關實例。
  • 每遇到 時,域將是唯一/不同的。

長版本: 我正在遷移舊數據庫以便與新應用程序一起使用。舊的數據庫具有包括內容,諸如文本字段:

這是與[HREF =「http://somedomain.com」]超級鏈接[/ HREF]和更多的數據和可能的其他數據字段超鏈接。

我需要將其更新爲標準html,例如,

這是與< A HREF = 「http://somedomain.com」 >超級鏈接< /一個>和更多的數據和可能的其他超鏈接的數據字段。

殺青[HREF =和[/ HREF]是很簡單的使用更換

update table set field = replace(field, '[href=', '<a href='); 

,但我得到難倒了關於「]在href標籤的閉架,並在數據庫中有在其他情況下,「不應該修改],所以我不能隨便更換」]

的MySQL是否有某種形式的正則表達式‘期待’或其他方式來做到這一點的?

謝謝了!

+2

可能看看http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql這樣的? 如果這是一次性交易,你可能會考慮在客戶端做這件事;例如一個簡短的Perl腳本來SELECT */UPDATE每一行。可能效率低下,但可用於這樣的簡單修復。 – BRFennPocock

+0

謝謝!不確定這會對我有用,因爲像「]這樣的字符只有當它們被用作超鏈接的一部分時才需要變成」>「。如果沒有提供的mysql解決方案,我一定會用類似Perl的腳本來解決這個問題。再次感謝 – billrichards

+0

在你的「短版」中,我認爲你的意思是'[href =「http://a-random-domain.com」] hyperlink [/ href]'而不僅僅是'[href =「http:// a-random-domain.com「]'? – ruakh

回答

相關問題