ここにテーブルがあります
Id Date Name vendor
1 | 123 | jungle | qwe
2 | 43 | jungle | qwe
3 | 678 | jungle | ewq
4 | 678 | jungle | ewq
5 | 678 | jungle | ewq
6 | 678 | jungle | hgjghj
このスクリプトは、名前列に重複する値があり、ベンダー値も同じである行をテーブルから削除します。一意の行を 1 つだけ残します。$.post()
スクリプトは、フロントエンドのボタンをクリックした後、XHR ajax call を介して実行されます。
$sql = DELETE x
FROM $table x
JOIN
( SELECT vendors
, email
, MIN(lead_id) min_lead_id
FROM $table
WHERE vendors = $vendor
GROUP BY vendors
, email
) y
ON y.vendors = x.vendors
AND y.email = x.email
AND y.min_lead_id <> x.lead_id;
mysql_query($sql, $conn);
echo json_encode($foo);
そして結果
Id Date Name vendor
1 | 123 | jungle | qwe
3 | 678 | jungle | ewq
6 | 678 | jungle | hgjghj
50k のテーブルでは、2 秒で終了します。というか、 を介して ajax 呼び出しを返しますecho json_encode($result);
。その時点で、プロセスは完了したと思いますが、mysql テーブルに移動して何度も更新した後、テーブルで報告された行の総数がクエリがまだ実行されているかのように変化し続けるため、mysql がまだ実行されていることがわかりました。
echo json_encode($result);
データベースの更新が完了するまで待機させるにはどうすればよいですか? または、これを解決するためのより良い方法はありますか? ありがとう。
$("#complete_dedupe").live("click", function(e) {
e.preventDefault();
table_name = $('#IMEXp_import-selectTable-select option:selected').val();
$.post("dedupevendor.php", {"table": table_name}, function(data) {
count_dedupe = 0;
count_dedupe = data;
$("#dupe_vendor").append(count_dedupe);
$("#tr2").fadeIn("slow");
vendor = $("#vendor_hidden").val();
$("#edit_par4").append(vendor);
}, "json")
});
phpmyadmin を継続的に更新することで、丸で囲まれた数字が約 1 分未満の間変化します。これは、重複排除スクリプトを実行した直後と、スクリプトが ajax 呼び出しから既に戻った直後にのみ発生します。写真は下です