Maison  >  Article  >  base de données  >  Comment supprimer les lignes en double dans un tableau tout en conservant l’entrée la plus ancienne ?

Comment supprimer les lignes en double dans un tableau tout en conservant l’entrée la plus ancienne ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 09:21:29156parcourir

How to Remove Duplicate Rows in a Table While Keeping the Oldest Entry?

Suppression des lignes en double tout en préservant les entrées les plus anciennes

Dans votre tableau contenant les données de soumission des utilisateurs, des entrées en double se sont accumulées en fonction du champ SubscriberEmail. Pour garantir l'intégrité des données, vous souhaitez supprimer ces lignes en double tout en conservant les soumissions originales.

Solution :

<code class="sql">delete x 
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id</code>

Explication :

  • Auto-jointure : La requête effectue une auto-jointure sur la table myTable, créant deux instances distinctes de la table, alias "x" et "z".
  • Condition de comparaison : La jointure fait correspondre les lignes de « x » et « z » en fonction de la colonne SubscriberEmail, comparant efficacement chaque ligne à toutes les autres lignes.
  • Filtrage : La clause Where sélectionne les lignes de "x" où la valeur de la colonne id est supérieure à la valeur id de la ligne correspondante dans "z". Cela identifie les lignes en double avec des valeurs d'ID plus élevées.
  • Suppression : L'instruction delete supprime les lignes en double identifiées par « x », ne laissant que les soumissions originales.

Considérations supplémentaires :

Pour éviter de futures insertions en double, envisagez de créer un index UNIQUE sur la colonne SubscriberEmail. Cela renforcera le caractère unique des adresses e-mail dans le tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn