繁体   English   中英

MySQL:需要脚本帮助

[英]MySQL: Help with script needed

CREATE TABLE `photos` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `photo` varchar(255) NOT NULL,
  `hotel_id` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23061 DEFAULT CHARSET=utf8

所以,我有桌子“照片”。 现在,我想更改此表并添加列“类型”。

ALTER TABLE photos
ADD COLUMN type varchar(50) default 'jpg'

但是有一个问题:“照片”列包含路径-“ / foo / bar.jpg”或“ /foo/bar.png”,我想根据“照片”列的内容更新“类型”列。 因此,如果照片以“ jpg”结尾,则类型必须为“ jpg”;如果照片以“ png”结尾,则类型必须为“ png”。

我不知道如何编写这样的脚本...

您可以为此使用case语句:

update  photos
set     type = case
                   when photo like '%.jpg' then 'jpg'
                   when photo like '%.png' then 'png'
                   else null
               end

或者,如果类型始终是最后3个字符:

update  photos
set     type = right(photo, 3)

这不是您问题的答案,但这听起来确实不是数据库引擎的工作。 我建议在添加记录时设置type

同样,文件扩展名不能保证图像实际上是指定类型的。 进行检查可能是个好主意-例如,在PHP中,您将使用getimagesize()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM