Foros del Web » Programando para Internet » PHP »

Borrar Registros Duplicados Por Fecha

Estas en el tema de Borrar Registros Duplicados Por Fecha en el foro de PHP en Foros del Web. Tengo un problemilla, yo en una tabla guardo ips y fecha, entonces aveces me salen duplicadas. Entonces quiero borrarlas las de la misma fecha, pero ...
  #1 (permalink)  
Antiguo 02/12/2010, 20:13
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Cruz de Tenerife
Mensajes: 49
Antigüedad: 15 años
Puntos: 0
Borrar Registros Duplicados Por Fecha

Tengo un problemilla, yo en una tabla guardo ips y fecha, entonces aveces me salen duplicadas.

Entonces quiero borrarlas las de la misma fecha, pero manteniendo una y borrando la otra si fueran dos, el codigo siquiente lo hace perfectamente.

Código:
DROP TABLE IF EXISTS `ganancias`;
CREATE TABLE IF NOT EXISTS `ganancias` (
  `id_ganan` int(11) NOT NULL auto_increment,
  `usuario_ganan` varchar(255) NOT NULL,
  `pais_ganan` varchar(255) NOT NULL,
  `ip_ganan` varchar(255) NOT NULL,
  `rango1_ganan` int(255) NOT NULL,
  `rango2_ganan` int(255) NOT NULL,
  `rango3_ganan` int(255) NOT NULL,
  `fecha` date NOT NULL,
  `procesar` int(11) NOT NULL,
  `afiliado` int(11) NOT NULL,
  KEY `id_ganan` (`id_ganan`)
) TYPE=MyISAM  AUTO_INCREMENT=1 ;

Código PHP:
include("conexion.php");
$fecha=date("Y-m-d");
$query="INSERT INTO ganancias_nueva SELECT * FROM ganancias WHERE fecha='$fecha' GROUP BY ip_ganan,fecha HAVING Count(*) >= 1";
$result=mysql_query ($query$link);

$qu2ery="DELETE FROM ganancias WHERE fecha='$fecha'";
$re2sult=mysql_query ($qu2ery$link);

$qu3ery="INSERT INTO ganancias SELECT * FROM ganancias_nueva GROUP BY ip_ganan HAVING Count(*) >=1";
$re3sult=mysql_query ($qu3ery$link);

$qu4ery="truncate table ganancias_nueva";
$re4sult=mysql_query ($qu4ery$link);
mysql_close(); 

Pero me temo que cuando tenga muchos registros el dedicado tenga una carga inecesaria, alguien sabe como consequirlo de una manera más eficiente.

Gracias

Etiquetas: borrar, duplicados, registros, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.