我需要一只手来解决我的列字段的问题。 我需要在字符串的这两个不同“模式”之间提取字符串,例如:
[... string] contract = 1234567890123350566076070666 issued = [string ...]
我想在'contract ='和'issued ='
之间提取字符串目前我正在使用
SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table
问题是它之间的这个字符串总是没有40个字符所以它不是固定的长度,因此它之前和之后的数据。这是一个不稳定的数据。
你知道我该怎么做吗?
答案 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>%';