2010-03-18 8 views
1

En ce moment je suis en utilisant quelque chose comme ceci pour supprimer les doublons dans le tableau mysql:comment supprimer les doublons dans mysql en utilisant le cas

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

dire que j'ai une structure comme ceci:

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

maintenant, dans le cas ci-dessus T3 est une entrée en double, et si j'utilise le SQL que j'ai mentionné ci-dessus, il supprime la 4ème ligne où le résultat est PASS, mais c'est la ligne que je veux garder et je veux supprimer la ligne 3 est FAIL.

Une aide s'il vous plaît?

Merci.

Répondre

0

Si je me mets correctement en cas de doublon, vous voulez supprimer le "FAIL" et non le "PASS"? dans ce cas, vous pouvez avoir la requête suivante:

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'; 

mais que voulez-vous faire quand tout le duplicata ont « FAIL » dans leur résultat de la colonne? Avec la requête ci-dessus, les deux seront supprimés. Voulez-vous en garder une dans ce cas?

+0

si les deux des doublons ont FAIL alors je veux garder le dernier en vérifiant la date. Il y a un champ de date en passant. – JPro

Questions connexes