2010-09-22 6 views
1

J'ai une table nommée tblm_customer. Il contient le champ firstname et lastname. Maintenant, je veux supprimer tous les enregistrements de la table qui contiennent le même prénom et le même nom qui sont déjà dans la table.supprimer l'enregistrement en double de la même table dans mysql

J'ai utilisé la base de données mysql et customerid est la clé primaire dans la table.

+0

Est-ce que deux enregistrements avec le même prénom/nom ont également le même clientid? – eumiro

+0

aucun customerid n'est unique car il est la clé primaire – chetan

+0

duplication possible de [Comment supprimer les lignes en double d'une table MySQL] (http://stackoverflow.com/questions/5770228/how-to-delete-duplicate-rows-from- a-mysql-table) – Basilevs

Répondre

4

Après suppression supprime tous les doublons, vous laissant avec la dernière CustomerID

Une note d'avertissement cependant. Je ne connais pas votre cas d'utilisation mais il est parfaitement possible d'avoir deux personnes avec exactement le même nom (nous avons même eu les addres étant les mêmes en même temps).

DELETE c1 
FROM tblm_customer c1 
     , tblm_customer c2 
WHERE c1.FirstName = c2.FirstName 
     AND c1.LastName = c2.LastName 
     AND c1.CustomerID < c2.CustomerID 
+0

il va generaERROR 1093 (HY000): Vous ne pouvez pas spécifier la table cible 'TBLM_CUSTOMER' pour la mise à jour dans FROM erreur de clausete comme – chetan

+0

@chetan, j'ai modifié l'instruction. La déclaration précédente a fonctionné avec SQL Server. Cela devrait fonctionner avec MySQL. –

Questions connexes