将一列中的子字符串替换为同一行中另一列的值

时间:2015-03-11 15:41:31

标签: mysql

我有一个包含两列的MySQL数据库,idfile

id    file
1     /img/333.PNG
2     /img/452645.jpg
3     /img/1.gif

file是完全相同的路径(/img/),数字和图形文件扩展名,有些位于较低位置(.png),有些位于大写字母(.JPEG 1}})。

如何使用file(来自同一行)替换id的路径和数字部分?

上述示例的结果应如下所示:

id    file
1     1.PNG
2     2.jpg
3     3.gif

注意:

  • 我不想重命名实际文件,只是数据库条目。
  • 我想只使用一个查询在所有行中重命名file

1 个答案:

答案 0 :(得分:0)

这应该有效

UPDATE table SET file = CONCAT(id, '.', RIGHT(file, 3));

为了适应JPEG扩展点的定位。

UPDATE table SET file = CONCAT(id, SUBSTRING(file, POSITION('.' IN file)));