删除两个分隔符之间列内的子字符串

时间:2015-01-06 22:29:48

标签: mysql

我有一个继承的mysql数据库,包含很多垃圾数据,如:

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

我应该删除特殊标记以保留“我的真实文本”。

但我找不到任何解决方案。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

嗯,这是一个(非常,太多)脏的解决方案,可以帮助您从数据库中导出所需的真实文本:

SELECT TRIM(&#34;&#39;&gt;&#34; FROM TRIM(&#34;&#34; FROM SUBSTRING(field_name,LOCATE(&#34;&#34;,field_name)), LOCATE(&#34;&#34;,field_name,2))))FROM table_name;

只需替换&#34; table_name&#34;和&#34; field_name&#34;。

答案 1 :(得分: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