Gestion des lignes en double : préserver les soumissions les plus anciennes
Les données en double peuvent avoir un impact significatif sur l'intégrité et la convivialité de n'importe quelle base de données. Dans ce scénario, notre objectif est d'éliminer les lignes en double basées sur le champ SubscriberEmail, en ne conservant que la soumission d'origine.
Pour y parvenir sans recourir à des techniques d'échange de tables, nous pouvons utiliser la requête SQL suivante :
delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id
Cette requête utilise la puissance de l'alias de table. En créant des alias x et z pour la table myTable, nous pouvons comparer les lignes d'une même table. Plus précisément, nous joignons x et z sur le champ SubscriberEmail, créant ainsi une auto-jointure.
La clause Where effectue le filtrage crucial. Il élimine les enregistrements dans x où le champ id est supérieur au champ id correspondant dans z. Cela garantit que seules les soumissions non originales (en double) sont ciblées pour la suppression.
Pour améliorer encore les performances, envisagez d'implémenter un index UNIQUE sur la colonne SubscriberEmail. Cela empêchera automatiquement l'insertion d'entrées en double dans votre table à l'avenir.
En implémentant cette requête, vous pouvez supprimer efficacement les lignes en double, en préservant la soumission la plus ancienne pour chaque adresse e-mail sans avoir besoin de manipulations de table complexes ou procédures de brassage de données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3