今天遇到这样一个需求:
有两张表,一张是专辑表,另一张是专辑下的图片表,
专辑表中有拍摄年\月,两个字段; 图片表中有实际拍摄日期的字段;
因为专辑表中这两个字段是后加入的,因此只能用一条sql语句将之前程序没有写入的拍摄年月增加进入;
其实这个问题很简单,所以毫不犹豫采用了 以下模式进行更新,
UPDATE streetphoto a SET a.`year` = YEAR(photos.`shootdate`), a.`month` = MONTH(photos.`shootdate`) FROM photos WHERE a.`id` = photos.`refid` AND photos.`moduleid` = 4 AND photos.`iscover` = 1
结果发现,Mysql竟然不吃这一套还明晃晃的给我抛出个语法错误,
如图:
然后沉默中它就是不告诉你为啥错误,反正它是错了,你自己想办法吧
那好吧,此路不通就换一个办法,所以下面的方法执行毫无问题;
UPDATE streetphoto, photos SET streetphoto.`year` = YEAR(photos.`shootdate`), streetphoto.`month` = MONTH(photos.`shootdate`) WHERE streetphoto.`id` = photos.`refid` AND photos.`moduleid` = 4 AND photos.`iscover` = 1
成功通过.