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

Comment supprimer les lignes en double des tables MySQL sans utiliser de tables temporaires ?

Susan Sarandon
Libérer: 2024-12-26 12:26:10
original
231 Les gens l'ont consulté

How to Remove Duplicate Rows from MySQL Tables Without Using Temporary Tables?

Purger les doublons des tables MySQL sans tables temporaires

Les tables MySQL contiennent souvent des enregistrements en double qui peuvent encombrer la base de données et compromettre l'intégrité des données. La suppression de ces doublons est cruciale pour maintenir l’exactitude des données et améliorer les performances des requêtes. Cet article explore une approche efficace pour éliminer les enregistrements en double sans utiliser de tables temporaires.

Création d'index unique

La méthode la plus simple consiste à créer un index unique sur les colonnes qui définissent l'unicité de la table. Pour la table TableA, l'index suivant garantit que la combinaison de member_id, quiz_num, question_num etanswer_num est unique :

ALTER IGNORE TABLE `TableA` ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
Copier après la connexion

Une fois l'index créé, MySQL maintient automatiquement son intégrité, empêchant ainsi les enregistrements en double d'être inséré.

Suppression de clé primaire

Alternativement, l'ajout d'une clé primaire à la table peut également empêcher les doublons insertions. La requête suivante supprime les enregistrements en double en fonction de la clé primaire :

DELETE FROM member
WHERE id IN (
    SELECT *
    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

L'instruction DELETE supprime les enregistrements en fonction de la colonne id, garantissant qu'il ne reste qu'un seul enregistrement avec la même combinaison unique de colonnes.

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