0

可能重复:
如何在 MySQL 中进行正则表达式替换?

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

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

有没有其他方法可以解决这个问题?我考虑过使用子字符串 from to 之类的东西。但到目前为止没有发现任何对我有用的东西。

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

问候 bnz

4

1 回答 1

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=%_"'

这确定了活动内容的位置,并删除了该位置以及之后的所有内容。

不需要正则表达式。一般来说,你可以通过组合LOCATELEFTRIGHTSUBSTR来实现很多目标CONCAT

于 2012-07-25T13:55:07.960 回答