我有几千行的表。我希望能够获取其中一行并将其复制到一个新行中。这样做的最佳方式是什么?
我应该抓取行数据并将每个字段分配到变量中吗?然后获取这些变量并将它们插入新行?
所以这是两个问题 - 是否有更有效的方法来做到这一点?
答案 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;