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!