2015-01-06 24 views
0

之間我有一個繼承的MySQL數據庫與大量的垃圾數據,如:刪除子2定界符

<span class="editContent" data-key="services_pan6" >EDIT</span>'> My real text </span> 

,我應該刪除特殊標籤,以剩下的只是「我真正的文本」。

但我找不到任何解決方案。有人能幫助我嗎?

+0

如何識別真實文本?爲什麼你的例子有兩次''? –

+0

這是來自數據庫的複製文本。每個記錄中的數據鍵都不相同,我需要的是兩個'>'''字符之間的文本 –

+1

解決方案可能是編寫一個php(或其他語言)腳本來解析所有數據並提取您的值用正則表達式更新目標行。 – ceadreak

回答

0

嗯,這裏是一個(非常,太多)骯髒的解決方案,可以幫助你導出您從您的數據庫需要真正的文本:

SELECT TRIM('「>」 FROM TRIM(‘’將子(field_name,LOCATE(「」,field_name),LOCATE(「」,field_name,2))))FROM table_name;

只需要替換「table_name」和「field_name」。

0

你可以定義一個函數:

CREATE FUNCTION strSplit(x varchar(255), delim varchar(12), pos int) returns varchar(255) 
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, ''); 

,然後使用它,直到你達到你想要的文字來分割你的字符串。
例如:

select strSplit("a#b", '#',1) as first; -> aaa 
select strSplit("aaa,b,cc,d", ',', 2) as second; -> b