我想更新该领域的部分。
例如,我想改变
aacity,bbcity,cccity,ddcity
到
aatown,bbtown,cctown,ddtown.
有没有办法在一个查询中实现这个目标?
答案 0 :(得分:1)
UPDATE test
SET col = regexp_replace(col, '(?:city)','town','g');
答案 1 :(得分:0)
不要使用昂贵的正则表达式进行静态替换。使用简单而便宜的replace()
。替换字符串中子字符串的所有次出现。
此外,不无条件地运行UPDATE
。这将为每一行写一个新的行版本,即使没有任何变化。昂贵的废话。
改为使用:
UPDATE test
SET col = replace(col, 'city', 'town')
WHERE col <> replace(col, 'city', 'town'); -- only where necessary