我已经看到了许多变化,但是没有什么与我要完成的工作完全匹配。
我有一张表格,TableA其中包含用户对可配置问卷的回答。列为member_id, quiz_num, question_num, answer_num。
TableA
member_id, quiz_num, question_num, answer_num
不知何故,一些成员两次提交了答案。因此,我需要删除重复的记录,但要确保保留一排。
没有 主 列,因此可能有两行或三行的数据完全相同。
是否有查询以删除所有重复项?
在表上添加 唯一索引 :
ALTER IGNORE TABLE `TableA` ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
另一种方法是:
在表中添加主键,然后可以使用以下查询轻松地从表中删除重复项:
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 );