Showing posts with label delete duplicate rows. Show all posts
Showing posts with label delete duplicate rows. Show all posts

Wednesday, October 31, 2012

Delete duplicate rows in mysql and php

How to delete duplicate records in table?
For example :
user_new table - total rows - 45000
duplicate rows - 5150

I have used below this code.It works fine.cheers!!!

<?php 
ini_set("max_execution_time","18800");
$con = mysql_connect("localhost","root","root");
mysql_select_db("testdb",$con);

$query = "SELECT email,count(email),group_concat(user_id) as uid FROM `user_new` group by email having count(email) > 1  ";

$result = mysql_query($query);
$total_rows = mysql_num_rows($result);
$del_ids = array();

if($total_rows>0)
{
  while($row=mysql_fetch_object($result))
  {
    $uid = $row->uid;
$aUid = explode(",",$uid);
array_shift($aUid);
 $rids = array_merge($del_ids,$aUid);
 $del_ids =  $rids;
   }
 //   print_r($del_ids);
   $Sdel_ids = implode(",",$del_ids);
   $del_query = "DELETE FROM user_new where user_id in ($Sdel_ids) ";
   echo $del_query;
   mysql_query($del_query);
}

?>