How to delete duplicate records in table?
For example :
$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);
}
?>
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);
}
?>
No comments:
Post a Comment