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 SQLDELETE n1 FROM prueba n1, prueba n2 WHERE n1.titulo = n2.titulo AND n1.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 SQLDELETE n1 FROM prueba n1, prueba n2 WHERE n1.titulo = n2.titulo AND n1.id < n2.id; |
No hay comentarios:
Publicar un comentario