MySQL更改文本列中的文件扩展名

发布于 2024-10-12 19:57:41 字数 839 浏览 2 评论 0原文

MySQL-pro 的一个简单问题。我有一个表,其中有一个包含文件名的字段(只有文件名,没有额外的文本)。我需要将所有文件扩展名从“.png”更改为“.jpg”,我知道有一种方法只需查询即可完成此操作,无需使用 PHP 或 Java 等编程语言编写脚本。

以防万一,删除“show create table”输出:

CREATE TABLE `photos` (
  `id` bigint(20) NOT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `photo_name` varchar(255) DEFAULT NULL,
  `comment` text,
  `normal_file_name` varchar(255) DEFAULT NULL,
  `thumb_file_name` varchar(255) DEFAULT NULL,
  `full_file_name` varchar(255) DEFAULT NULL,
  `photo_order` int(11) DEFAULT NULL,
  `gallery_file_name` varchar(255) DEFAULT NULL,
  `photo_type` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_photos_OWNER_ID` (`owner_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

normal_file_name、thumb_file_name、gallery_file_name 和 full_file_name 是带有文件路径的字段。

提前感谢您的帮助!

// 评审团

A simple question for MySQL-pro. I've got a table that has a field with the filename in it (just the filename, no extra text). I need to change all file extension from ".png" to ".jpg", I know there's a way to do it with just query and no scripting in the programming language like PHP or Java.

Just in case, dropping "show create table" output:

CREATE TABLE `photos` (
  `id` bigint(20) NOT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `photo_name` varchar(255) DEFAULT NULL,
  `comment` text,
  `normal_file_name` varchar(255) DEFAULT NULL,
  `thumb_file_name` varchar(255) DEFAULT NULL,
  `full_file_name` varchar(255) DEFAULT NULL,
  `photo_order` int(11) DEFAULT NULL,
  `gallery_file_name` varchar(255) DEFAULT NULL,
  `photo_type` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_photos_OWNER_ID` (`owner_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

The normal_file_name, thumb_file_name, gallery_file_name and full_file_name are fields with file paths.

Thanks for help in advance!

// Juriy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

与君绝 2024-10-19 19:57:41

在 UPDATE 语句中使用 REPLACE 函数

UPDATE PHOTOS
   SET normal_file_name = REPLACE(normal_file_name, '.png', '.jpg'),
       thumb_file_name = REPLACE(thumb_file_name, '.png', '.jpg'),
       gallery_file_name = REPLACE(gallery_file_name, '.png', '.jpg'),
       full_file_name = REPLACE(full_file_name, '.png', '.jpg')

如果没有匹配项,更换不会发生。

Use the REPLACE function in an UPDATE statement:

UPDATE PHOTOS
   SET normal_file_name = REPLACE(normal_file_name, '.png', '.jpg'),
       thumb_file_name = REPLACE(thumb_file_name, '.png', '.jpg'),
       gallery_file_name = REPLACE(gallery_file_name, '.png', '.jpg'),
       full_file_name = REPLACE(full_file_name, '.png', '.jpg')

If there's no match, the replacement won't happen.

您的好友蓝忘机已上羡 2024-10-19 19:57:41

使用替换。举个例子:

update photos
    set normal_file_name = replace(normal_file_name, '.png', '.jpg');

Use REPLACE. As an example:

update photos
    set normal_file_name = replace(normal_file_name, '.png', '.jpg');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文