CREATE TABLE `prueba` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titulo` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
-- 
-- Volcar la base de datos para la tabla `prueba`
-- 
INSERT INTO `prueba` VALUES (1, 'titulo1');
INSERT INTO `prueba` VALUES (2, 'titulo2');
INSERT INTO `prueba` VALUES (3, 'titulo1');
INSERT INTO `prueba` VALUES (4, 'titulo3');
INSERT INTO `prueba` VALUES (5, 'titulo1');
INSERT INTO `prueba` VALUES (6, 'titulo2');
INSERT INTO `prueba` VALUES (7, 'titulo1');
//******************************
NOTA: COPIADO DE
http://andalinux.wordpress.com/2013/04/15/sql-eliminar-entradas-duplicadas-dejando-una-de-muestra/
Dejar la entrada más antigua
Si queremos eliminar todas las entradas duplicadas dejando la primera
 aparición (la más vieja, la que tiene menor ID) lanzaremos la siguiente
 sentencia SQL
| 
 
 
 
 
 | 
DELETEn1 
FROMprueba n1, prueba n2 
WHEREn1.titulo = n2.titulo 
ANDn1.id > n2.id; | 
 
 
Dejar la última aparición
Si queremos eliminar todas las entradas duplicadas menos la más 
reciente (la más nueva, la que tiene mayor ID) lanzaremos la siguiente 
consulta SQL
| 
  
 
 
 
 | 
DELETEn1 
FROMprueba n1, prueba n2 
WHEREn1.titulo = n2.titulo 
ANDn1.id < n2.id; | 
 
 
NOTA: Observa que el único cambio ha sido 
n1.id < n2.id en lugar de 
n1.id > n2.id