按最长日期

时间:2015-07-13 10:17:35

标签: mysql duplicates duplicate-removal

我的MySQL数据库中有一个表,我需要删除重复项。

我的表看起来像这样:

unique_id    value    frequency    value_type    publication_date
1             6.5     1            2             2014-12-31
2             7.5     3            5             2014-06-04
3             6.5     1            2             2015-07-13
4             8.0     4            3             2010-12-31

除了publication_date之外,第1行和第3行是重复的。我需要删除这些重复项,但保留行的最大发布日期,所以对于这个例子,我想删除第1行并保留第3行。

到目前为止,我已经尝试了这个但是它在我的测试表上给了我太多的结果:

SELECT t.* FROM
(SELECT MAX(publication_date) AS most_recent_date
 FROM table_1
 GROUP BY `value`,frequency,value_type
) t1
JOIN table_1 t 
ON t.publication_date = t1.most_recent_date;

任何帮助都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用JOIN删除重复项

delete t1 from table_1 t1
join table_1 t2 on t1.value = t2.value 
and t1.frequency= t2.frequency 
and t1.value_type = t2.value_type
and t1.unique_id <> t2.unique_id
and t1.publication_date < t2.publication_date ;