Mysql查询字符串替换

时间:2012-07-25 12:38:58

标签: mysql

  

可能重复:
  How to do a regular expression replace in MySQL?

我尝试替换以'?campaign = qwertysomerandomtext''开头的字符串,并将其替换为'“'。

我尝试使用通配符,例如'?campaign =%_“并替换为'”'。但发现Wildcards不适用于替换。

还有其他方法可以解决这个问题吗?我想过使用像substring一样的东西。但到目前为止,没有发现对我有用的东西。

希望有人可以帮我解决这个问题。

问候 BNZ

1 个答案:

答案 0 :(得分:1)

  

我尝试替换以字母开头的字符串   '?campaign=qwertysomerandomtext"'并将其替换为'"'

从字面上理解这个请求,它就变成了

UPDATE t SET s = '"' WHERE s = '?campaign=qwertysomerandomtext"'

我已经在搜索字符串的末尾和替换字符串中复制了问题中的双引号。如果这是一个错误,请调整。

如果随机文本是占位符并且应该是通配符,如第二段所述,则使用

UPDATE t SET s = '"' WHERE s = '?campaign=%_"'

如果要替换的文本位于其他字符串的末尾,而不是按照您提出的方式开始,那么您可以

UPDATE t SET s = LEFT(s, LOCATE('?campaign=', s)) WHERE s = '?campaign=%_"'

这标识了广告系列内容的位置,并删除了该内容以及之后的所有内容。

不需要正则表达式。一般来说,您可以通过合并LOCATELEFTRIGHTSUBSTRCONCAT来实现目标。