2011-02-01 104 views
2

我有一個數據庫(約300萬條記錄),其中有多個/重複的記錄,在數據庫中具有相同的「電子郵件」,我想留下一行以其默認狀態0)並更新其他重複項的「status = 5」。 請注意,並非所有記錄都有重複。電子郵件地址以base64編碼存儲。PHP/MySQL - 更新重複條目的行

+0

是否有一列對每一行都是唯一的?像主鍵? – 2011-02-02 00:01:59

+0

是的,我的ID是自動增量 – Michael 2011-02-02 00:04:38

回答

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