sql >> Database >  >> RDS >> Mysql

Hoe verwijder ik alle dubbele records in een MySQL-tabel zonder tijdelijke tabellen?

Unieke index toevoegen op je tafel:

ALTER IGNORE TABLE `TableA`   
ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);

Een andere manier om dit te doen is:

Voeg primaire sleutel toe aan uw tabel, dan kunt u eenvoudig duplicaten uit uw tabel verwijderen met behulp van de volgende query:

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
            );


  1. Valse externe sleutelbeperking mislukt

  2. BETWEEN-clausule versus <=AND>=

  3. Weergaven gebruiken in een MySQL-database

  4. Verhindert SELECT FOR UPDATE dat andere verbindingen worden ingevoegd wanneer de rij niet aanwezig is?