可能重复:
如何在 MySQL 中进行正则表达式替换?
我尝试替换以 '?campaign=qwertysomerandomtext"' 开头的字符串并将其替换为 '"'。
我尝试为此使用通配符,例如 '?campaign=%_" 并替换为 '"'。但发现通配符不适用于替换。
有没有其他方法可以解决这个问题?我考虑过使用子字符串 from to 之类的东西。但到目前为止没有发现任何对我有用的东西。
希望有人可以帮助我解决这个问题。
问候 bnz
可能重复:
如何在 MySQL 中进行正则表达式替换?
我尝试替换以 '?campaign=qwertysomerandomtext"' 开头的字符串并将其替换为 '"'。
我尝试为此使用通配符,例如 '?campaign=%_" 并替换为 '"'。但发现通配符不适用于替换。
有没有其他方法可以解决这个问题?我考虑过使用子字符串 from to 之类的东西。但到目前为止没有发现任何对我有用的东西。
希望有人可以帮助我解决这个问题。
问候 bnz
我尝试替换以 开头的字符串
'?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=%_"'
这确定了活动内容的位置,并删除了该位置以及之后的所有内容。
不需要正则表达式。一般来说,你可以通过组合LOCATE
、LEFT
、RIGHT
和SUBSTR
来实现很多目标CONCAT
。