MySQL子串在两个字符串之间

时间:2015-02-10 12:07:38

标签: mysql string function indexing substring

我需要一只手来解决我的列字段的问题。 我需要在字符串的这两个不同“模式”之间提取字符串,例如:

  

[... string] contract = 1234567890123350566076070666 issued = [string   ...]

我想在'contract ='和'issued ='

之间提取字符串

目前我正在使用

SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table

问题是它之间的这个字符串总是没有40个字符所以它不是固定的长度,因此它之前和之后的数据。这是一个不稳定的数据。

你知道我该怎么做吗?

2 个答案:

答案 0 :(得分:36)

只需使用substring_index()两次:

SELECT substring_index(substring_index(licence_key, 'contract=', -1),
                       'issued=', 1)
FROM table;

答案 1 :(得分:0)

如果此字符串不匹配,则给出总结果。

如果您想要替换,那么您可以像这样使用。

UPDATE questions set question= REPLACE(question, '<xml></xml>', '') WHERE question like '%<xml>%';

UPDATE questions set question= REPLACE(question, substring_index(substring_index(question, '<xml>', -1), '</xml>', 1), '') WHERE question like '%<xml>%';