【问题标题】:Mysql query string replace [duplicate]Mysql查询字符串替换[重复]
【发布时间】:2012-07-23 21:28:33
【问题描述】:

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

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

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

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

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

问候 bnz

【问题讨论】:

  • 有没有一种方法可以对表格进行预处理? (update x set col = " where col like '?campaign=%')
  • @lqez,没有重复,因为简单的替换不需要正则表达式。
  • @MvG,天哪,确实如此,我的错。很好的答案。

标签: mysql


【解决方案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来实现很多目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2020-02-24
    • 2016-06-26
    相关资源
    最近更新 更多