使用mysql查询更改映像名称并更新到同一个表中

时间:2012-10-03 09:19:57

标签: mysql

我想在下表中更改图片名称。

图片名称:test.png

替换为:test_E.png

我希望在使用mysql查询的表中所有图像名称的末尾添加_E。

2 个答案:

答案 0 :(得分:3)

使用替换功能

update <table>
set image=replace(image,'.png','_E.png')

如果表格中的图片扩展名不相同,你可以使用它

   update <table>
     set image=concat(substring(image,1,locate('.',image)-1),'_E',
                 substring(image,locate('.',image),lenght(image)))

答案 1 :(得分:0)

您可以使用MySQL查询的字符串函数:

UPDATE TABLE SET IMAGE_NAME = CONCAT(SUBSTR(IMAGE_NAME,(CHAR_LENGTH(IMAGE_NAME) - 4)),
'_E' , SUBSTR(IMAGE_NAME, -4)) WHERE ID = <put record id>;

SUBSTR(IMAGE_NAME,(CHAR_LENGTH(IMAGE_NAME)-4))将返回文件名 - 假设扩展名为3个字符。对于'test.png',上面的函数将删除'.png',函数将返回'test'

SUBSTR(IMAGE_NAME, -4)会返回最后四个字符串的字符 - 所以'test.png'会返回'.png'

使用concat你可以连续'test','_ E'和'.png' - 返回'test_E.png'

请参考MySQL的字符串函数参考以供进一步使用

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html