Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie lösche ich alle doppelten Datensätze in einer MySQL-Tabelle ohne temporäre Tabellen?

Eindeutiger Index hinzufügen auf Ihrem Tisch:

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

Eine andere Möglichkeit, dies zu tun, wäre:

Fügen Sie Ihrer Tabelle einen Primärschlüssel hinzu, dann können Sie mit der folgenden Abfrage ganz einfach Duplikate aus Ihrer Tabelle entfernen:

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