SQLite:如何在所有行中的特定字符串之间找到subString?

时间:2017-11-23 08:06:05

标签: sql sqlite

我有一张包含很多行的表格。如何从特定字符串之间的所有行中提取字符串。例如,我有这样的文字:“stack over flow”。字符串“stack”和“flow”在所有行中都很常见;如何在这个两个字符串之间提取字符串并复制到新列? 我尝试的是:

UPDATE word set m = (SELECT m FROM word WHERE m BETWEEN 'stack' and 'flow') ;

更新: 考虑这个文本:“我喜欢stackoverflow服务。” 单词“stack”和“flow”在所有行中都很常见,我希望它们之间有字符串。

3 个答案:

答案 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';