我复制,从一个表中的一些记录到另一个 这个查询:MySql的删除 - 同样喜欢选择(加盟)
insert into pages_finished (keyword,pages,resultlist,done,current)
select keyword,pages,resultlist,done,current
from pages_done o
where (select count(*) as totalPages from pages_done x where x.keyword = o.keyword)-1 = pages
现在我想从源表中删除相同的记录, 我在想它会很简单,因为:
delete from pages_done o
where (select count(*) as totalPages from pages_done x where x.keyword = o.keyword)-1 = pages
但这不起作用。 谁能告诉我什么是这样做的正确方法?
@bgdrl回答之后,我正在考虑只运行select, 获取应该复制的所有记录的ID, 然后删除; 但我认为必须有一个更简单的解决方案,任何人?
即使明显@bgdrl答案正确的答案, 这只是因为一个事实。
感兴趣的人与我落得这样做: 我做了同样的选择,我开始用(但只选择ID列,因为选择的所有列会杀了我可怜的电脑), 它导出到INSERT STATMENTS
(使用mysqlworkbench), 打开记事本中的文本文件, 替换全部INSERT INTO
...用DELETE FROM WHERE ID=
, 并在mysql中运行该查询。
我觉得这么愚蠢采用这种方式,但显然没有别的选择。
为什么你不用mysql'LAST_INSERT_ID()' – diEcho 2011-05-09 07:56:50
@diEcho来处理这个问题,因为'LAST_INSERT_ID()'只返回一个值,而INSERT语句可以插入很多行。 – 2011-05-09 08:12:45