更新列值,替换部分字符串

时间:2012-04-16 15:36:37

标签: mysql sql

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

[id, url]

网址就像:

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

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

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

保持文件名不变。

我必须运行什么查询?

6 个答案:

答案 0 :(得分:584)

UPDATE urls
SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/')

答案 1 :(得分:145)

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

答案 2 :(得分:25)

尝试使用REPLACE function

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

请注意,它区分大小写。

答案 3 :(得分:9)

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

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

表示 BEGIN "...//domain1.com/images/"的所有记录,并且有任何AFTER(%表示...)

另一个例子:

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

表示包含"http://domain1.com/images/"

的所有记录

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

答案 4 :(得分:2)

尝试一下...

update [table_name] set [field_name] = 
replace([field_name],'[string_to_find]','[string_to_replace]');

答案 5 :(得分:1)

首先,必须检查

SELECT * FROM university在课程名类似'%&amp%'

下一步,必须更新

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

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