最近做一个小项目时碰到数据模型中主表需要的字段被放在了副表中,而用必须在主表中查询,因为数据模型在最初设计时,没有提出现在的需要,所以没有考虑这个问题,结果悲剧了,只能在主表中新增一个字段取代副表的字段,但是此时主表副表中都已经投入使用了,而且有不少数据。
所以上面的问题的解决办法就是用副表中writer字段的值替换到主表中的author字段,主表副表通过id主键关联,所以这就需要用到UPDATE…INNER JOIN方法,UPDATE大家并不陌生,但和INNER JOIN一起使用则并不常见,多见于SELECT联表查询。SQL语句如下:
UPDATE ***cms_news AS a INNER JOIN ***cms_news_data_1 as b
ON a.id=b.id SET a.author=b.writer
WHERE a.id>5000 AND a.id<10000 //步进大小用于控制数据操作的内存占用量,具体应该是多大需要看MySQL服务器的配置情况,需要实际测试