Tuesday, April 17, 2012

mysql - Find duplicates and update

This will find the duplicate record on the sever.

SELECT first_name, last_name, users.profile_display_name FROM users
INNER JOIN (SELECT profile_display_name FROM users
GROUP BY users.profile_display_name
HAVING count(id) > 1) dup ON users.profile_display_name = dup.profile_display_name;

This is just verifying that inner join is working

SELECT profile_display_name FROM users
GROUP BY users.profile_display_name HAVING count(id) > 1;


This part will update the duplicate records by adding numbers at the end of the profile_display_name

Update users INNER JOIN (SELECT profile_display_name FROM users
GROUP BY users.profile_display_name HAVING count(id) > 1) dup
ON users.profile_display_name = dup.profile_display_name
set users.profile_display_name = users.profile_display_name +  FLOOR(RAND() * 1000000);

No comments:

Post a Comment