MySQL使用旧值加上一个新字符串更新varchar值

时间:2013-03-20 09:08:56

标签: mysql string concatenation

我在表中有一堆图像引用,如:

data/fabrics/signature/signature1.jpg
data/fabrics/signature/signature2.jpg

我需要通过表格并在图像路径中添加一个额外的文件夹,如:

data/group1/fabrics/signature/signature1.jpg
data/group1/fabrics/signature/signature2.jpg

有没有办法只使用MySQL查询来执行此操作,还是需要使用PHP来连接字符串然后更新数据库?

2 个答案:

答案 0 :(得分:4)

您可以使用简单的替换函数,用不同的开头替换字符串的开头。如果替换是如此简单,可能是最简单的解决方案。

UPDATE tbl SET col=REPLACE(col, 'data/fabrics', 'data/group1/fabrics') WHERE xxx;

您可能必须使用不同的WHERE子句运行其中的一些,具体取决于所需的特定替换。

答案 1 :(得分:0)

update table1
set link=substring(link,1,charindex('/',link,1))+
         'group1'+substring(link,charindex('/',link,1),LEN(link))
where (your condition)

<强> SQL Fiddle