mySQL UPDATE来自另一个表中相应列的所有列

时间:2012-08-02 19:09:58

标签: mysql shortcut

我有两个具有相同架构的表。还有很多专栏!

我可以通过

更新相应表格中的记录
update t1 
join t2 on t2.id=t1.id 
set t1.column1=t2.column1,
    t1.column2=t2.column2... 
where t2.columnx > 123;

但是我有很多田地,而且天生就是一个懒惰的混蛋,他宁愿刮牦牛并在SE上发帖而不是输入一个列列表(可能缺少1个)。

除了将列列表写入文本文件等的一些时髦的解决方案之外,是否有有效的mySQL语法跳过所有列的显式列表并且更像INSERT ... SELECT?

2 个答案:

答案 0 :(得分:1)

REPLACE INTO t1 SELECT * FROM t2 WHERE columnx>123;

答案 1 :(得分:0)

尝试使用REPLACE INTO ... SELECT ...语法http://dev.mysql.com/doc/refman/5.0/en/replace.html

REPLACE INTO t1 SELECT t2.* FROM t2, t1 WHERE t1.columnx>123 AND t1.id=t2.id;

警告!未经测试!

仅当表在id列上具有唯一索引时,此代码才有效。