删除两个分隔符之间的列内的子字符串
delete substring inside column between two delimeter
我有一个继承的 mysql 数据库,其中有很多垃圾数据,例如:
<span class="editContent" data-key="services_pan6" >EDIT</span>'> My real text </span>
我应该删除特殊标签,只剩下 'My real text'。
但我找不到任何解决办法。有人可以帮助我吗?
好吧,这是一个(非常、太多)肮脏的解决方案,可以帮助您从数据库中导出您需要的真实文本:
SELECT TRIM("'>" FROM TRIM( "" FROM SUBSTRING(field_name, LOCATE("", field_name) , LOCATE("", field_name, 2)))) 从 table_name;
只需替换 "table_name" 和 "field_name"。
你可以定义一个函数:
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
我有一个继承的 mysql 数据库,其中有很多垃圾数据,例如:
<span class="editContent" data-key="services_pan6" >EDIT</span>'> My real text </span>
我应该删除特殊标签,只剩下 'My real text'。
但我找不到任何解决办法。有人可以帮助我吗?
好吧,这是一个(非常、太多)肮脏的解决方案,可以帮助您从数据库中导出您需要的真实文本:
SELECT TRIM("'>" FROM TRIM( "" FROM SUBSTRING(field_name, LOCATE("", field_name) , LOCATE("", field_name, 2)))) 从 table_name;
只需替换 "table_name" 和 "field_name"。
你可以定义一个函数:
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