2012-07-25 119 views
0

可能重复:
How to do a regular expression replace in MySQL?MySQL查询字符串替换

我试图取代以 ' “取而代之的是”'弦运动= qwertysomerandomtext?'。

我尝试使用通配符来表示'?campaign =%_“,并用'''替换。但发现通配符不与替换工作。

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

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

问候 BNZ

+0

有没有一种方法可以预处理表格? (update x set col =“where col like'?campaign =%') – stb 2012-07-25 12:55:12

+0

@lqez,没有重复,因为简单的替换不需要正则表达式 – MvG 2012-07-25 13:56:09

+0

@MvG,OMG,它的确如此,我的错误,很好的答案。 – lqez 2012-07-25 13:58:00

回答

1

我尝试更换与 '?campaign=qwertysomerandomtext"'开始和'"'替换字符串。

考虑这一请求从字面上看,它成为

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

我从你的问题复制的双引号,无论是在搜索字符串的结束和替换字符串内。如果这是一个错误,请调整。

如果随机文本是一个占位符,应该是一个通配符,在你的第二段所述,然后使用

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

如果要替换的文本是在其他一些字符串的结尾,而不是在该beginnning你问的方式,那么你可以做

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

此标识的战役东西的位置,并删除并遵循一切。

不需要正则表达式。一般来说,你可以通过结合LOCATE,LEFT,RIGHT,SUBSTRCONCAT来实现。