Maison > base de données > tutoriel mysql > le corps du texte

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

Linda Hamilton
Libérer: 2024-10-29 09:21:29
original
229 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal