· 9 years ago · Oct 02, 2016, 03:42 PM
1DROP TABLE IF EXISTS Duplicates;
2CREATE TEMPORARY TABLE Duplicates (
3 MasterID int NOT NULL,
4 DuplicateID int NOT NULL
5);
6INSERT INTO Duplicates(MasterID, DuplicateID)
7SELECT p1.PlayerID as MasterID, p2.PlayerID as DuplicateID
8FROM Player p1
9LEFT JOIN Player p2 on p1.Name = p2.Name
10WHERE p1.name = p2.name
11AND p1.PlayerID < p2.PlayerID
12ORDER BY p1.PlayerID;
13
14UPDATE app a
15SET a.PlayerID = ( SELECT d.MasterID FROM Duplicates d WHERE a.PlayerID = d.DuplicateID LIMIT 1 )
16WHERE a.PlayerID in (SELECT d.DuplicateID FROM Duplicates d);
17
18DELETE Player p
19WHERE PlayerID = ( SELECT d.DuplicateID FROM Duplicates d )
20DROP TABLE Duplicates;