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

Comment puis-je supprimer les lignes en double basées sur l'adresse e-mail de l'abonné tout en conservant la soumission la plus ancienne ?

Linda Hamilton
Libérer: 2024-11-03 15:10:30
original
536 Les gens l'ont consulté

How do I remove duplicate rows based on subscriberEmail while keeping the oldest submission?

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

Pour éliminer les lignes en double en fonction du champ SubscriberEmail, tout en conservant la soumission originale, suivez ces étapes :

<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 :

  • Cette requête joint la table contre elle-même à l'aide de la clause de jointure. Cela crée deux instances de la table, alias "x" et "z".
  • La clause Where compare les valeurs d'identifiant des deux instances. Les lignes de l'instance "x" avec un identifiant supérieur à la ligne correspondante dans l'instance "z" représentent les soumissions en double.
  • L'instruction delete identifie ces lignes en double dans l'instance "x" et les supprime de la table.
  • Le résultat est un tableau avec les e-mails d'abonnés uniques, où seule la soumission originale (avec l'identifiant le plus bas) reste pour chaque adresse e-mail.

Remarques supplémentaires :

  • Pour éviter de futurs doublons, pensez à créer un index UNIQUE sur la colonne SubscriberEmail.
  • La requête ci-dessus peut être simplifiée en combinant les clauses join et Where :
<code class="sql">delete x
from myTable x
join myTable z
on x.subscriberEmail = z.subscriberEmail and x.id > z.id;</code>
Copier après la connexion

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