我已经在这方面看到了很多变化,但没有什么能完全符合我的目标.

我有一个表TableA,其中包含用户对可配置问卷的回答.柱子是member_id, quiz_num, question_num, answer_num.

不知怎的,一些成员提交了两次答案.所以我需要删除重复的记录,但要确保留下一行.

没有primary列,因此可能有两到三行数据完全相同.

是否有删除所有重复项的查询?

推荐答案

在你的桌子上加Unique Index:

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

Mysql相关问答推荐

保存SQL查询的中间结果

限制正则​​表达式中多字符通配符的范围

查询给出错误时的 mySQL Group_Concat 和 Case

Golang Gorm没有从关联表中检索数据

选择多列但仅按 1 列分组

估计行数 SQL

使用 MySQL 在树中查找“ Leaf”

如何在 SQL 的计算列中显示小数点后两位?

如何使用nodejs从mysql数据库中获取最新的10条记录?

如何将表的链接列转换为 SQL 中的行?

MySQL 视图

如何解决“错误:MySQL 意外关闭”?

MYSQL_ROOT_PASSWORD 已设置但在 docker 容器中获取“用户'root'@'localhost'的访问被拒绝(使用密码:YES)”

pip install mysqlclient 返回“致命错误 C1083:无法打开文件:'mysql.h':没有这样的文件或目录

无法加载身份验证插件“caching_sha2_password”

MySql 5.7 安装程序无法检测到 VS 2013 可再发行组件

Yii2 如何进行 where AND 或 OR 条件分组?

#1273 – 未知排序规则:‘utf8mb4_unicode_520_ci’

如何向 MySQL 中的 ENUM 类型列添加更多成员?

使用 Docker 我收到错误:“SQLSTATE[HY000] [2002] 没有这样的文件或目录”