1

我有两张桌子,需要将一张复制到另一张INSERT INTO tbl_new SELECT FROM tbl_old

他们都有 3 个完全相同的列,但 tbl_new 有第 4 列称为“类型”我如何在同一个查询中填充它。

我需要从 tbl_old 复制行并将值分配给单元格“类型”

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

不工作

4

3 回答 3

1

Saytbl_old有两列和tbl_new三列

tbl_old
colA | colB

tbl_new
colA | colB | colC

假设您想用 colA 和 colB 值的总和填充 colC。你可以使用这个:

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 回答