Maison > base de données > tutoriel mysql > Comment supprimer les enregistrements en double dans MySQL sans utiliser de tables temporaires ?

Comment supprimer les enregistrements en double dans MySQL sans utiliser de tables temporaires ?

Barbara Streisand
Libérer: 2025-01-01 13:09:11
original
867 Les gens l'ont consulté

How to Remove Duplicate Records in MySQL Without Using Temporary Tables?

Suppression des enregistrements en double sans tables temporaires

Lorsque vous êtes confronté à des enregistrements en double dans une table MySQL, vous pouvez rencontrer des situations où les tables temporaires s'avèrent peu pratiques ou indésirable. Cet article explore des solutions alternatives pour éliminer les doublons tout en conservant une seule instance de chaque enregistrement unique.

Une approche consiste à exploiter les index uniques. En ajoutant un index unique sur les colonnes qui identifient de manière unique les enregistrements (member_id, quiz_num, question_num,answer_num), vous empêchez l'insertion de lignes en double, garantissant qu'il n'existe qu'une seule ligne pour chaque ensemble de valeurs uniques.

< pre>ALTER IGNORE TABLE TableA
AJOUTER UN INDEX UNIQUE (member_id, quiz_num, question_num, Answer_num);

Vous pouvez également ajouter une clé primaire à la table et utiliser une requête pour supprimer sélectivement les enregistrements en double :

DELETE FROM membre <br>WHERE id IN (SELECT *</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">         FROM (SELECT id FROM member 
               GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
              ) AS A
        );
Copier après la connexion

En utilisant la condition COUNT(*) > 1 dans la sous-requête, la requête identifie les lignes qui apparaissent plus d'une fois dans chaque combinaison unique de member_id, quiz_num, question_num etanswer_num. La colonne id de ces lignes en double est ensuite utilisée pour les localiser et les supprimer du membre. table.

Ces approches fournissent des méthodes efficaces et fiables pour supprimer les enregistrements en double sans recourir aux tables temporaires, garantissant l'intégrité des données et minimisant l'impact sur les performances.

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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal