Mysql 在需要查询时替换字符串

Mysql replace string when needed query

我有一个 table 叫做:k01cv_sh404sef_urls 在此 table 中,我们有以下行:

id, cpt, rank, oldurl, newurl and dateadd

行 "oldurl" 包含如下条目:

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

我想要一个查询,从 "oldurl" 行中的所有项目中删除英语/部分,以便 english/network 只是网络,English/hardware-and-software 会是硬件和软件等

结果将是 "oldurl" 行包含条目,例如:

network
hardware-and-software
corporate-social-responsibility

像这样简单的事情你能逃脱吗?

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

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

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

这不仅会 read/attempt 只更新匹配的记录(如果您的 table 很大但有一个索引 oldurl 是最左边的,这将产生特定的性能优势列),但也只会去除出现在字符串开头的 'English/'