1

私は2つのテーブルを持っており、互いにトップコピーする必要がありますINSERT INTO tbl_new SELECT FROM tbl_old

どちらにもまったく同じ列が3つありますが、tbl_newには「type」という4番目の列があり、同じクエリに入力するにはどうすればよいですか。

tbl_oldから行をコピーし、セルの「タイプ」に値を割り当てる必要があります

INSERT INTO tbl_new SELECT FROM tbl_old, (type) values (floor(rand() * 10))

動作しません

4

3 に答える 3

1

Saytbl_oldには2つの列tbl_newがあり、3つの列があります

tbl_old
colA | colB

tbl_new
colA | colB | colC

colCにcolAとcolBの値の合計を入力するとします。あなたはこれを使うことができます:

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,(colA+colB) FROM tbl_old;

あなたの例では:

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,floor(rand()*10) FROM tbl_old;
于 2012-04-14T05:16:52.443 に答える
1

以下を試してください:

 INSERT INTO tbl_new (column1,column2,column3,type) 
 SELECT column1,column2,column3,floor(rand() * 10) FROM tbl_old

注:column1、column1.column3を列名に置き換えてください。

于 2012-04-14T05:18:16.693 に答える
0

上記の答えは正しいですが、余分な列を除いてすべてが同一である場合、列の書き込みに費やされる時間を想像してください。

最後に追加の列がある順序でテーブルが同一である場合、これは非常に優れたクエリです。

INSERT INTO tbl_new SELECT *, floor(rand()*10) FROM tbl_old;
于 2016-02-12T19:04:43.757 に答える