2015-04-20 91 views
0

我有一个名为表时,Mysql的替换字符串:k01cv_sh404sef_urls 这个表里面我们有以下行:需要查询

id, cpt, rank, oldurl, newurl and dateadd 

行“OLDURL”包含条目的如:

English/network 
English/hardware-and-software 
corporate-social-responsibility 

我想要一个查询,将英文/部分从“oldurl”行中的所有项目中删除,以便英文/网络只是网络,英文/硬件和软件将是硬件和软件,等等。

其结果将是该行“OLDURL”包含条目的如:

network 
hardware-and-software 
corporate-social-responsibility 

回答

1

你可以逃脱这么简单的东西吗?

UPDATE table SET oldurl = REPLACE(oldurl, 'English/', ''); 

(请测试在真实数据运行之前使用SELECT!)

1
UPDATE k01cv_sh404sef_urls 
SET oldurl = SUBSTRING(oldurl FROM 9) 
WHERE oldurl LIKE 'English/%' 

这将不只是读/试图更新仅匹配记录(这将产生一个特定的性能好处,如果你的表很大,但有一个索引,其中oldurl是最左边的一列),但也只会去掉出现在字符串开头的'English/'

+0

谢谢,这完美的作品。 我也有一些网址如 nl/nederlands/hardware-en-software 我想删除/ nederlands /部分。我怎样才能做到这一点? – gijs007