簡體   English   中英

mySQL UPDATE來自另一個表中相應列的所有列

[英]mySQL UPDATE all columns from corresponding columns in another table

我有兩個具有相同架構的表。 還有很多專欄!

我可以通過執行來更新相應表中的記錄

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?

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

嘗試使用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列上具有唯一索引時,此代碼才有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM