我正在尝试使用新的相对url对数据库表中的旧url进行简单更新,但我不断收到“0行受影响”。我认为它可能与字符串中的转义字符有关吗?
“数据”列中的网址现在使用反斜杠进行结构化。 这是我的SQL:
UPDATE vjfl_sliderimages
SET data = REPLACE(data, '\/myolddomain.com\/images\/', '\/images\/')
这应该可以将每个图像的URL从myolddomain.com/images/更改为/ images /,但由于某种原因它只是没有任何影响。
答案 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), '/'))