SELECT DISTINCT id FROM usuarios WHERE nick IN
(SELECT nick FROM usuarios GROUP BY nick HAVING COUNT() > 1) AND id NOT IN
(SELECT MAX(id) FROM usuarios GROUP BY nick HAVING COUNT() > 1)
Lo que hace la sentencia es lo siguiente:
Seleccióname los id de usuarios cuyo nick esté en los nicks repetidos, pero cuyo id no sea el máximo id de los repetidos.
De este manera te muestra todos los id de los registros de usuarios repetidos menos el id mayor de cada uno de los repetidos.
Ahora ya los tienes para borrarlos. Sólo tienes que hacer:
DELETE FROM usuarios WHERE id IN
(
SELECT DISTINCT id FROM usuarios WHERE nick IN
(SELECT nick FROM usuarios GROUP BY nick HAVING COUNT() > 1) AND id NOT IN
(SELECT MAX(id) FROM usuarios GROUP BY nick HAVING COUNT() > 1)
)
Conste que lo he probado y rula a la perfección: xDD
http://img416.imageshack.us/my.php?image=sentenciasql8es.jpg
Simplemente sustituye los nombres de las columnas de la tabla y lo tienes hecho.
Salu2!
P.D.: Por cierto #1, veo en tu perfil que eres la caña haciendo logos y tal. Necesito algún logo muy sencillito, nada estrambótico, que ponga: Student Office
Es para una aplicación a medida que estoy haciendo. Algo muy sencillo muy sencillo. Nada tipo web, sino como cuando pone Microsoft Excel Office al lanzar el Excel de salida, bueno pues algo parecido. Es para una aplicación para estudiantes, por si te sirve de algo.
Gracias por adelantado si es qte cuesta poco tiempo y esfuerzo.