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

Comment éliminer les lignes en double tout en préservant l'entrée originale dans un tableau ?

Barbara Streisand
Libérer: 2024-10-31 19:12:29
original
720 Les gens l'ont consulté

How to Eliminate Duplicate Rows While Preserving the Original Entry in a Table?

Éliminer les lignes en double tout en préservant l'originalité

Question :

Le maintien de l'intégrité des données est crucial, et souvent, des entrées en double peuvent résulter des soumissions des utilisateurs. Dans un scénario où des entrées en double existent en fonction d'un champ spécifique, tel que SubscriberEmail, l'objectif est d'éliminer ces doublons, en ne conservant que l'entrée d'origine. Comment y parvenir efficacement sans recourir à l'échange de tables ?

Réponse :

Comme le tableau contient des identifiants uniques pour chaque ligne, une approche simple peut être adoptée :

<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 exploite l'existence d'identifiants uniques pour identifier les enregistrements d'origine. En joignant la table par rapport à elle-même à l'aide du champ SubscriberEmail et en filtrant en fonction des ID, il marque efficacement les enregistrements en double comme ceux ayant des ID plus élevés que l'original. Ces doublons balisés sont ensuite supprimés.

Pour améliorer encore les performances des requêtes, envisagez d'utiliser un index sur la colonne SubscriberEmail. Cela garantit une récupération rapide des enregistrements basés sur ce champ, rendant la requête plus efficace. En déclarant la colonne SubscriberEmail comme colonne indexée UNIQUE, cela peut également aider à empêcher l'insertion d'entrées en double à l'avenir.

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