Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. id | name | surname
  2. --------------------
  3. 1 | niko | surname
  4. 2 | niko | surname
  5. 3 | jane | surname
  6. 4 | jane | surname
  7. 5 | ivan | surname
  8.  
  9. id | name | surname
  10. --------------------
  11. 1 | niko | surname
  12. 3 | jane | surname
  13. 5 | ivan | surname
  14.  
  15. SELECT min(id), name, surname
  16. FROM `table`
  17. GROUP BY name, surname
  18.  
  19. CREATE TEMPORARY TABLE `t_temp`
  20. as (
  21. SELECT min(id) as id
  22. FROM `table`
  23. GROUP BY name, surname
  24. );
  25.  
  26. DELETE from `table`
  27. WHERE `table`.id not in (
  28. SELECT id FROM t_temp
  29. );
  30.  
  31. ALTER IGNORE TABLE foobar ADD UNIQUE (name, surname)
  32.  
  33. SELECT *
  34. FROM tablename
  35. INNER JOIN (SELECT Min(id) minid,
  36. name,
  37. surname
  38. FROM tablename
  39. GROUP BY name,
  40. surname
  41. HAVING Count(1) > 1) AS duplicatesTable
  42. ON ( duplicatesTable.name = tablename.name
  43. AND duplicatesTable.surname = tablename.surname
  44. AND duplicatesTable.minid <> tablename.id )
  45.  
  46. delete from table where id in (select max(id) from table group by name having count(id)>1)
  47.  
  48. DELETE FROM mytable WHERE id IN (SELECT id FROM (SELECT m.id
  49. FROM mytable m
  50. INNER JOIN (SELECT MAX(id) id, name, surname, COUNT(name) cnt
  51. FROM mytable
  52. GROUP BY name, surname
  53. HAVING cnt > 1) dupl
  54. ON m.name = dupl.name AND m.surname = dupl.surname AND m.id != dupl.id) tmp_table)
  55.  
  56. delete from t1 a where id in
  57. (select max(id) from t1 where name in
  58. (select name from t1
  59. group by name
  60. having count(name )>1) and name =a.name );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement