Mysql查询字符串替换[重复]
Posted
技术标签:
【中文标题】Mysql查询字符串替换[重复]【英文标题】:Mysql query string replace [duplicate] 【发布时间】: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,天哪,确实如此,我的错。很好的答案。 【参考方案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=%_"'
这会识别广告系列内容的位置,并删除该位置以及之后的所有内容。
不需要正则表达式。一般来说,你可以通过结合LOCATE
、LEFT
、RIGHT
、SUBSTR
和CONCAT
来实现很多目标。
【讨论】:
以上是关于Mysql查询字符串替换[重复]的主要内容,如果未能解决你的问题,请参考以下文章