4

同一のスキーマを持つ 2 つのテーブルがあります。そしてコラムも盛りだくさん!

次のようにして、対応するテーブルからレコードを更新できます

update t1 
join t2 on t2.id=t1.id 
set t1.column1=t2.column1,
    t1.column2=t2.column2... 
where t2.columnx > 123;

しかし、私はたくさんのフィールドを持っており、本質的に怠け者であり、列のリストを入力するよりもヤクを剃って SE に投稿することを好みます (おそらく 1 つ欠けています)。

列リストをテキストファイルなどに書き出すファンキーなソリューション以外に、すべての列の明示的なリストをスキップし、INSERT...SELECT のように機能する有効な mySQL 構文はありますか?

4

2 に答える 2

4
REPLACE INTO t1 SELECT * FROM t2 WHERE columnx>123;
于 2012-08-02T19:16:51.503 に答える
1

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列に一意のインデックスがある場合にのみ機能します。

于 2012-08-02T19:21:20.053 に答える