使用单个查询替换许多记录中的字符串部分

时间:2017-01-20 01:54:57

标签: mysql sql

我有一个带有varchar字段的MySQL表,其中包含许多记录,如:

folder/subfolder_1/file_xpto
folder/subfolder_2/file_abc
folder/subfolder_3/file_123
folder/subfolder_4/file_xyz 

我想在一个查询中删除字符串的一部分" / subfolder_x"所以最终会是:

folder/file_xpto
folder/file_abc
folder/file_123
folder/file_xyz 

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

使用substring_index获取第一个和最后一个子字符串,并使用concat_ws连接它们。

select concat_ws('/',substring_index(colname,'/',1),substring_index(colname,'/',-1))
from tablename
where colname like 'folder/%'