我在MySQL数据库中有一个包含以下列的表
[id, url]
网址就像:
http://domain1.com/images/img1.jpg
我想将所有网址更新到另一个网域
http://domain2.com/otherfolder/img1.jpg
保持文件名不变。
我必须运行什么查询?
答案 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
结果:工程与技术=> 工程与技术