在select中用N替换N次出现的字符串

时间:2018-03-18 01:09:33

标签: mysql replace

我正在尝试清理文件中的<br>,我最多只能达到两个

我当然可以筑巢取代:

Replace(Replace(Field,'<br><br><br>','<br><br>'),'<br><br><br>','<br><br>')

但它很慢而且笨拙,最终我会被另外一个<br>的记录抓住。无论如何,对某种类型的N&#39;含义&#39;用两个<br>替换连续两个<br>以上的任何字符串?

1 个答案:

答案 0 :(得分:2)

这应该有效。此外,仅更新超过3个相邻<br>的行。

update my_table
  set field = regexp_replace (field, '(<br>){3,}', '<br><br>')
  where field regexp '(<br>){3,}';

(<br>)匹配单个<br>{3,}匹配3个或更多<br>