CSV をアップロードし、データベースの重複チェッカー一時テーブルに挿入するスクリプトがあります。その時点で、次のことを行います。
1) 自身 (一時テーブル) の重複をチェックし、それらをすべて一時テーブルから削除します 2) 顧客テーブルの重複をチェックし、それらを一時テーブルから削除します
現在、顧客テーブルには数十万のレコードがあるため、すべてを粉砕停止に引きずっているように見えるphpループでこれを行っています。代わりに、これを多くクエリに入れることができれば、物事がうまくいくと思います。アップロードは正常に機能します。問題のコードのセクションは次のとおりです。
<?
// look for duplicate account_no in the temp table
$sql_1 = "SELECT account_no,count(*) FROM tempTable GROUP BY account_no";
$result_1 = mysql_query($sql_1) or die("Error: " . mysql_error() . "<br>");
while(list($acct,$numcount) = mysql_fetch_row($result_1)) {
// if there is a duplicate in tempTable, delete them all
if($numcount>1) {
$toBeRemoved+=$numcount;
$sql_delete = "DELETE FROM tempTable WHERE(account_no = '$acct')";
$result_delete = mysql_query($sql_delete) or die("Error: " . mysql_error() . "<br>");
}
}
// look for duplicate account_no in the customersTable and delete from tempTable
$sql_2 = "SELECT account_no FROM customersTable";
$result_2 = mysql_query($sql_2) or die("Error: " . mysql_error() . "<br>");
while(list($acct) = mysql_fetch_row($result_2)) {
$sql_delete = "DELETE FROM tempTable WHERE(account_no = '$acct')";
$result_delete = mysql_query($sql_delete) or die("Error: " . mysql_error() . "<br>");
}
?>