ユーザーデータを格納するデータベースがデータベースにあります。このテーブルデータベースにデータを追加するコードに欠陥がありました。ネットワークタイムアウトが発生した場合、コードは次のユーザーのデータを前のユーザーのデータで更新しました。私はこの欠陥に対処しましたが、私はデータベースをきれいにする必要があります。私は、無視する必要がある行を示すためにフラグを追加しました。私の目標は、これらのフラグを重複に応じてマークすることです。ただし、重複した値が実際に正当なものになる場合があるため、同じデータ(つまりu> 2)を持つ複数のユーザーを見つけることにもっと興味があります。mySQLデータベーステーブルから重複するユーザーエントリを削除する
ここ例です(テーブル名=データ):
ID ---- USER_ID ---- ---- DATA1、DATA2、DATA3 ---- ----日時----- ------ flag
1 ----- usr1 -------- 3 ---------- 2 --------- 2-- ------- 2012-02-16 ..----- 0
2 ----- usr2 -------- 3 ---------- 2 --------- 2 --------- 2012-02-16 ..----- 0
3 ----- usr3 ------ - 3 ---------- 2 --------- 2 --------- 2012-02-16 ..----- 0
この場合、1と2のidフラグに1(無視することを示す)をマークしたいと思います。 usr1が元のデータポイントであったことを知っているから(最も古い日付がリストの前にあると仮定して)
この時点では、テーブルには非常に多くのエントリがあり、重複したエントリを持つユーザを識別するための最良の方法はわかりません。
問題のデータを最初に特定するためのmysqlコマンドを探していますが、次にそのエントリにマークを付けることができます。誰かが正しい方向に私を導くことができますか?
ありがとうございます。これは正しいアプローチのようです。私はいくつかの重複を見ることができますが、ユーザー間ではありません - 私は大丈夫です同じユーザーの間で重複データが表示されます。私は、同じデータを複数の異なるユーザが同じ時間枠で(数分から45分以内に)持っていることにもっと関心を持っています。これは簡単にできますか? – user836200
こんにちは、私は私の答えを更新しました、うまくいけばそれはあなたを助けます。 – biziclop
ありがとう!これは大いに役立ちます! – user836200