0

I have a table in mysql which have 1319 duplicate records how can I delete duplicate values but have 1 record saved?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129

2 Answers2

0

There are many options:

First use this kind of query:

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)

Second:

Create another blank table of same structure and insert into second table using group by on all columns or few unique columns.

Third:

Apply a unique key using alter ignore table.

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Aman Aggarwal
  • 17,619
  • 9
  • 53
  • 81
0

try this.....

DELETE FROM tbl WHERE id NOT IN ( SELECT * FROM(SELECT id FROM tbl GROUP BY col1, col2, ) AS p)

Yograj Sudewad
  • 343
  • 2
  • 9