2015-12-05 120 views
1

我试图做一个简单的更新数据库表中的旧网址与一个新的相对url,但我不断收到“0行受到影响”。我认为这可能与字符串中的转义字符有关?MySql用换码符替换字符串的一部分

'data'列中的URL现在用反斜杠构成。 这里是我的SQL:

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

这应该工作到每个图像的URL从myolddomain.com/images/到/图像改变/但出于某种原因,它只是没有任何影响。

回答

0

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

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

如果4溅起不工作,那么尝试3

+0

感谢拉夫小伙子。我尝试了4,3和2斜线,并没有效果。该消息显示“您的SQL查询已成功执行”,但没有任何更改。 – danzo

+0

试试这个http://stackoverflow.com/questions/4271186/how-can-i-use-mysql-replace-to-replace-strings-in-multiple-records 并将我的上面的答案与它集成。 –

+0

UPDATE vjfl_sliderimages SET data = REPLACE(data,'////myolddomain.com////images////','//// images ////')WHERE data like like'%/// /myolddomain.com////images////%'; 试试这个,让我知道它是否有效。 –

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/'); 
+0

感谢火影忍者。我最初尝试过,但它返回“0行受影响”。 – danzo

+0

你可以放置确切的网址....因为我已经检查了我的本地数据库,它运行得非常好...我编辑答案,如果你的域名是myolddomain.com/images/ – Naruto

+0

这个数据库已从我的本地服务器到现场服务器。我的本地服务器上的URL是http://192.168.10.15/myolddomain.com/images/。滑块组件使用它认为是/myolddomain.com/images的相对URL,因为显而易见的原因,它不再适用于活动服务器。这就是为什么有一个主要的斜线。现在它位于实时服务器上,图像的URL都是错误的。我可以手动编辑它们,但有很多,需要几个小时。 – danzo