code_junkie

Is there a clean way of cleaning up duplicate entries in MySQL?

Nov 12th, 2011
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.40 KB | None | 0 0
  1. UPDATE names n1
  2. JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name)
  3. JOIN child_table c ON (n2.id = c.id)
  4. SET c.name_id = n1.id
  5. ORDER BY n1.id DESC;
  6.  
  7. DELETE FROM n2
  8. USING names n1 JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name);
  9.  
  10. update dependent_table set name_id = <id you want to keep> where name_id in (
  11. select id from names where name = 'foo' and id != <id you want to keep>)
Add Comment
Please, Sign In to add comment