我有一张有很多排的桌子。如何从特定字符串之间的所有行中提取字符串。例如,我有这样的文本:"stackoverflow".字符串“堆栈”和“流”在所有行中都很常见;如何在这两个字符串之间提取字符串并复制到新列?我尝试的是:
UPDATE word set m = (SELECT m FROM word WHERE m BETWEEN 'stack' and 'flow') ;更新:考虑这段文字:“我喜欢堆栈溢出服务。”“堆栈”和“流”这两个词在所有行中都很常见,我想要它们之间的字符串。
发布于 2017-11-23 10:10:48
你可以试试这个
//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的字符串函数的纯数学。
发布于 2017-11-23 08:31:12
使用substr从第6个字符(堆栈)开始,然后使用多少个字符。长度-9是指字长减去“堆栈”和“流”的长度。
UPDATE word set m = (substr(m, 6, length(m)-9)) where m like 'stack%' and m like '%flow'
发布于 2017-11-23 09:49:14
您也可以使用
UPDATE word
set m = replace(replace(m,'stack',''),'flow','')
where m like 'stack%' and m like '%flow';https://stackoverflow.com/questions/47450379
复制相似问题