The logins table has over 400,000 rows. The query below was timing out before it could ever finish. So I added the LIMIT 100, to see if that would help. It didn't, as well as it didn't help when I moved the LIMIT 100 after the last closing parenthesis. By the way, this same type of query worked great on some other tables. Any thoughts?
#Create the temporary table to store the IDs of the elements to erase.
CREATE TEMPORARY TABLE ids (loginID int);
#Find the IDs of the elements to erase:
INSERT INTO ids(loginID) SELECT loginID FROM logins AS t
WHERE 1 != (SELECT COUNT(*) FROM logins
WHERE logins.loginID <= t.loginID
AND logins.uID = t.uID
AND logins.tempDate = t.tempDate LIMIT 100);
#Delete the elements of the table with the previously selected indexes
DELETE logins FROM logins,ids WHERE logins.loginID = ids.loginID;
#Remove the temporary table
DROP TABLE ids;