我在mysql中有一个表有1319个重复记录,如何删除重复值但保存了1个记录?
答案 0 :(得分:0)
有很多选择:
首先使用这种查询:
DELETE FROM comments c1
WHERE EXISTS (SELECT *
FROM comments c2
WHERE c2.id <> c1.id
AND c2.NAME = c1.NAME
AND c2.email = c1.email
AND c2.COMMENT = c1.COMMENT)
AND c1.id <> (SELECT MIN(c2.id)
FROM comments c2
WHERE c2.NAME = c1.NAME
AND c2.email = c1.email
AND c2.COMMENT = c1.COMMENT)
第二
创建另一个具有相同结构的空白表,并在所有列或少数唯一列上使用group by插入到第二个表中。
第三
使用alter ignore table应用唯一键。
答案 1 :(得分:0)
试试这个......
DELETE FROM tbl 在哪里没有( SELECT * FROM(SELECT id FROM tbl GROUP BY col1,col2, )AS p)