Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2010, 20:13
CanariasHosting
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Cruz de Tenerife
Mensajes: 49
Antigüedad: 15 años, 1 mes
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