2012-03-02 56 views
1

好,所以我有一个表,其中存储价格和事件细节。根据字段查找删除重复项 - SQL - 根据TIMESTAMP字段删除最旧的项。

除了UPLOADDATE不同之外,所有的细节都是相同的(当价格上传时) - 我想删除旧价格。

http://sqlfiddle.com/#!2/1db0e/1

感谢

+0

当你说你想删除旧价格,你的意思是'旧价格fo r每个X'。哪个表和列应该替换'X'? PS:记得接受以前的答案 – 2012-03-02 04:04:37

+0

嗨,莫斯,感谢您的提示。该表是wp_events,并根据查询删除整行。所以有两行都有确切的商家,事件细节,但唯一的区别是上传日期。所以删除最老的行 – user1208025 2012-03-02 04:31:21

回答

0

尝试运行此查询:

select e1.* from wp_events e1 
left join wp_events e2 
on e1.merchant = e2.merchant and e1.uploaddate < e2.uploaddate 
where e2.uploaddate is not null 

如果返回你正在寻找的结果,然后通过仅更换第一行执行删除:

delete e1 from wp_events e1 
left join wp_events e2 
on e1.merchant = e2.merchant and e1.uploaddate < e2.uploaddate 
where e2.uploaddate is not null