MySQL 两个字符串之间的子字符串
MySQL substring between two strings
我需要帮助来解决我的列字段的问题。
我需要提取这两个不同 "patterns" 字符串之间的字符串,例如:
[...string] contract= 1234567890123350566076070666 issued= [string
...]
我想提取 'contract=' 和 'issued='
之间的字符串
目前我正在使用
SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table
问题是中间的这个字符串并不总是 40 个字符,所以它不是固定长度的,因此前后的数据也是如此。这是一个不稳定的数据。
你知道我该如何处理吗?
只需使用substring_index()
两次:
SELECT substring_index(substring_index(licence_key, 'contract=', -1),
'issued=', 1)
FROM table;
如果这个字符串不匹配则给出总结果。
如果要替换的话可以这样用
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>%';
我需要帮助来解决我的列字段的问题。 我需要提取这两个不同 "patterns" 字符串之间的字符串,例如:
[...string] contract= 1234567890123350566076070666 issued= [string ...]
我想提取 'contract=' 和 'issued='
之间的字符串目前我正在使用
SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table
问题是中间的这个字符串并不总是 40 个字符,所以它不是固定长度的,因此前后的数据也是如此。这是一个不稳定的数据。
你知道我该如何处理吗?
只需使用substring_index()
两次:
SELECT substring_index(substring_index(licence_key, 'contract=', -1),
'issued=', 1)
FROM table;
如果这个字符串不匹配则给出总结果。
如果要替换的话可以这样用
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>%';