MySQL可以replace多个字符吗?

我试图在MySQL字段中replace一堆字符。 我知道REPLACE函数,但是一次只replace一个string。 手册中看不到任何适当的function。

我可以一次更换或删除多个string吗? 例如,我需要用破折号replace空格,并删除其他标点符号。

5 Solutions collect form web for “MySQL可以replace多个字符吗?”

您可以链接REPLACE函数:

select replace(replace('hello world','world','earth'),'hello','hi') 

这将打印hi earth

你甚至可以使用子查询来replace多个string!

 select replace(london_english,'hello','hi') as warwickshire_english from ( select replace('hello world','world','earth') as london_english ) sub 

或者使用JOIN来replace它们:

 select group_concat(newword separator ' ') from ( select 'hello' as oldword union all select 'world' ) orig inner join ( select 'hello' as oldword, 'hi' as newword union all select 'world', 'earth' ) trans on orig.oldword = trans.oldword 

我将使用公共表格expression式作为读者的练习;)

级联是mysql用于多字符replace的唯一简单而直接的解决scheme。

 UPDATE table1 SET column1 = replace(replace(REPLACE(column1, '\r\n', ''), '<br />',''), '<\r>','') 

REPLACE做了一个简单的工作,用stringreplace字符或短语。 但是,当清理标点符号时,您可能还需要查找模式,例如文本特定部分的空白或字符序列,例如在词的中间或完全停止之后。 如果是这样的话,你可能会发现这个自定义的正则expression式replace函数更强大。

我一直在使用lib_mysqludf_preg ,它允许你:

在MySQL中直接使用PCRE正则expression式

安装这个库,你可以做这样的事情:

 SELECT preg_replace('/(\\.|com|www)/','','www.example.com'); 

哪个会给你:

 example 

我会build议运行一个程序来遍历你的logging,处理字段,然后更新它们。 也许一个简单的Perl或PHP脚本。

  • 在C#中:在以逗号分隔的string列表中,在string周围添加引号
  • 在Haskell中,如何从string的开头和结尾修剪空格?
  • android string.xml读取html标签的问题
  • 在R中创build一个string连接运算符
  • 将string拆分为行的最佳方法
  • 如何将string转换为C ++中的string?
  • 如何根据子串匹配来selectR data.table行(一个像SQL一样)
  • 比较两个string,在C#中忽略大小写
  • 使用T-SQL查找最后一次出现子string的索引
  • 评估string“3 *(4 + 2)”收益int 18
  • AssertContains在jUnit中的string