删除表的重复项

时间:2014-02-25 04:37:27

标签: mysql sql duplicate-removal delete-row

在我的activity_logs中,它包含以下列:material_nameuser_idmod_result(如果通过/失败则标记为测试),cert_links。不知何故,用户生成material_name条目的两倍,cert_links列留空。

我可以使用以下内容列出所有user_id的重复项:

SELECT user_id, material_name, mod_score, cert_links, start_time 
FROM activity_logs 
WHERE mod_result = 'Pass' AND cert_links = ''

我想删除包含mod_result = 'Fail'cert_links = ''

的重复条目

2 个答案:

答案 0 :(得分:0)

你可以使用:

Delete from activity_logs WHERE mod_result = 'Fail' AND cert_links = '' or ''NULL'

答案 1 :(得分:0)

3个步骤:

步骤1:将非重复项(唯一元组)移动到临时表

CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 GROUP BY [COLUMN删除重复项BY];

第2步:删除旧表

DROP TABLE old_table;

步骤3:将new_table重命名为old_table的名称

RENAME TABLE new_table TO old_table;