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/'
。
我有一个 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/'
。