2011-02-01 18 views
2

データベースに同じ "電子メール"を持つ複数の/重複レコードを持つデータベースがあります(デフォルトのステータスで1行を残したいと思います0)を更新し、残りの複製については "status = 5"を更新する。 すべてのレコードに重複があるわけではありません。電子メールアドレスはbase64でエンコードされて格納されます。PHP/MySQL - 重複エントリを持つローを更新する

+0

各行に固有の列はありますか?主キーのように? –

+0

はい、私はオートインクリメントであるidを持っています – Michael

答えて

9
UPDATE tbl 
JOIN (
    SELECT email, MIN(ID) minID 
    FROM tbl 
    GROUP BY email 
    HAVING COUNT(*) > 1) t2 ON tbl.email = t2.email AND tbl.id != t2.minID 
SET tbl.status = 5 
+0

ok ..私はクエリを実行します..どのように多くの時間が3ミルを更新するためにかかるかもしれない任意のアイデア。記録 ? – Michael

+1

@michael 'email'にインデックスがありますか?ローンの時間がない場合 –

+0

インデックスはid ... – Michael

関連する問題