2010-03-18 50 views
1

删除在mysql中重复现在我使用这样的事情在MySQL表中删除重复:如何使用情况

delete t2 from my_table1 as t1, my_table1 as t2 where 
t1.TestCase = t2.TestCase and t2.id > t1.id; 

说我有一个这样的结构:

ID TestCAse Result 
1 T1  PASS 
2 T2  FAIL 
3 T3  FAIL 
4 T3  PASS 

现在,在上述情况下,T3是重复条目,如果我使用上面提到的SQL,它将删除第4行,其结果为PASS,但这是我想保留的行,并且我希望第3行被删除是FAIL

请帮忙吗?

谢谢。

回答

0

如果我在重复的情况下正确搁置,您想删除“FAIL”而不是“PASS”?在这种情况下,你可以有以下查询:

delete t2 from my_table1 as t1, my_table1 as t2 where 
t1.TestCase = t2.TestCase and t2.id != t1.id and t2.Result='FAIL'; 

但你想做的事时,所有重复已在其列结果“失败”是什么?通过上面的查询,两者都将被删除。在这种情况下你想保留一个吗?

+0

如果两个副本都有FAIL,那么我想保留最新的一个 检查日期。顺便提一下,有一个日期字段。 – JPro 2010-03-18 15:16:35