MySql用转义字符替换字符串的一部分

时间:2015-12-05 17:30:10

标签: mysql string url replace

我正在尝试使用新的相对url对数据库表中的旧url进行简单更新,但我不断收到“0行受影响”。我认为它可能与字符串中的转义字符有关吗?

“数据”列中的网址现在使用反斜杠进行结构化。 这是我的SQL:

 UPDATE vjfl_sliderimages
 SET data = REPLACE(data, '\/myolddomain.com\/images\/', '\/images\/')

这应该可以将每个图像的URL从myolddomain.com/images/更改为/ images /,但由于某种原因它只是没有任何影响。

3 个答案:

答案 0 :(得分:0)

在MySQL或SQL VARCHAR字段中对转义字符(/)的处理方式不同。 试试

 UPDATE vjfl_sliderimages
 SET data = REPLACE(date, '////myolddomain.com////images////', '////images////');

如果4次飞溅不起作用,请尝试3。

答案 1 :(得分:0)

因为它是正斜杠所以不需要逃脱符号。

UPDATE vjfl_sliderimages SET data = REPLACE(data,'/myolddomain.com/images/', '/images/');

编辑: - 如果以前的网址是myolddomain.com/images /

然后查询必须

UPDATE vjfl_sliderimages SET data = REPLACE(data,'myolddomain.com/images/', '/images/');

答案 2 :(得分:0)

对于有此问题的任何人,请使用带有CHAR(92)的CONCAT SQL函数,该函数对应于'\'ASCII字符。

示例:

UPDATE vjfl_sliderimages SET data = REPLACE(data, CONCAT(CHAR(92), '/myolddomain.com', CHAR(92), '/images', CHAR(92), '/'), CONCAT(CHAR(92), '/images', CHAR(92), '/'))