我有一张包含很多行的表格。如何从特定字符串之间的所有行中提取字符串。例如,我有这样的文字:“stack over flow”。字符串“stack”和“flow”在所有行中都很常见;如何在这个两个字符串之间提取字符串并复制到新列? 我尝试的是:
UPDATE word set m = (SELECT m FROM word WHERE m BETWEEN 'stack' and 'flow') ;
更新: 考虑这个文本:“我喜欢stackoverflow服务。” 单词“stack”和“flow”在所有行中都很常见,我希望它们之间有字符串。
答案 0 :(得分:1)
你可以试试这个
//tested string 'here is something like that'
update word set m=(select substr(m,instr(m,'is'),instr(m,'like')-1) from word);
//ouput will be 'is something like'
这是使用mysql的字符串函数的纯数学
答案 1 :(得分:0)
使用substr
从第6个字符(堆栈)开始单词,然后使用多少个字符。长度 - 9是'堆栈的平均总字长扣除长度。和'流动'
UPDATE word set m = (substr(m, 6, length(m)-9)) where m like 'stack%' and m like '%flow'
答案 2 :(得分:0)
您也可以使用
UPDATE word
set m = replace(replace(m,'stack',''),'flow','')
where m like 'stack%' and m like '%flow';