如何将现有数据移动到新行?

时间:2010-06-23 00:01:01

标签: php mysql

我有几千行的表。我希望能够获取其中一行并将其复制到一个新行中。这样做的最佳方式是什么?

我应该抓取行数据并将每个字段分配到变量中吗?然后获取这些变量并将它们插入新行?

所以这是两个问题 - 是否有更有效的方法来做到这一点?

2 个答案:

答案 0 :(得分:3)

INSERT INTO tablename SELECT * FROM tablename WHERE <your where condition>

如果主键在阻碍

INSERT INTO tablename (every, field, except, primary) SELECT every, field, except, primary FROM tablename WHERE <your where condition>

OR

INSERT INTO tablename SELECT NULL, every, field, except, primary FROM tablename WHERE <your where condition>

(假设id是第一列)

显式命名您正在使用的列(本回答中的第二个查询)应该是生产代码的首选。

答案 1 :(得分:0)

查看mysql的INSERT ... SELECT语法。

您应该可以执行以下操作:

INSERT INTO tbl (a, b, c) SELECT a, b, c FROM tbl WHERE id = 1234;