394

我在 MySQL 数据库中有一个包含以下列的表

[id, url]

网址如下:

 http://domain1.com/images/img1.jpg

我想将所有网址更新到另一个域

 http://domain2.com/otherfolder/img1.jpg

保持文件名不变。

我必须运行什么查询?

4

6 回答 6

835
UPDATE urls
SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/')
于 2012-04-16T15:39:09.120 回答
198
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/')
WHERE url LIKE ('http://domain1.com/images/%');

相关文档:http ://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

于 2012-04-16T15:39:15.427 回答
30

尝试使用替换功能

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

请注意,它区分大小写。

于 2012-04-16T15:40:04.683 回答
10

试试这个...

update [table_name] set [field_name] = 
replace([field_name],'[string_to_find]','[string_to_replace]');
于 2018-07-11T01:52:03.927 回答
9

您需要WHERE子句替换符合 WHERE 子句中条件的记录(而不是所有记录)。您使用%符号表示部分字符串:IE

LIKE ('...//domain1.com/images/%');

表示所有以BEGIN 开头"...//domain1.com/images/"在 AFTER 之后有任何内容的记录(这是%for...)

另一个例子:

LIKE ('%http://domain1.com/images/%')

这意味着所有记录包含"http://domain1.com/images/"

在字符串的任何部分...

于 2014-11-24T23:27:19.813 回答
2

首先,必须检查

SELECT * FROM universityWHERE course_name LIKE '%&%'

接下来,必须更新

更新大学 SET course_name = REPLACE(course_name, '&', '&') WHERE id = 1

结果:工程与技术 =>工程与技术

于 2019-09-24T06:27:13.463 回答