我與this other question的情況相同,但我不想選擇行,我想更新這些行。更新重複條目的行
我用solution Scott Saunders made:
select * from table where email in (
select email from table group by email having count(*) > 1
)
這工作,但我想改變/更新這些條目行的值,所以我嘗試:
UPDATE `members` SET `banned` = "1" WHERE `ip` IN (
SELECT `ip` FROM `members` GROUP BY `ip` HAVING COUNT(*) > 1
)
,但我得到這個錯誤:
You can't specify target table 'members' for update in FROM clause
+1不錯!沒有什麼像一個小小的解決方法。好奇,如果MySQL會支持這樣的事情:'更新M設置...從成員M在哪裏...... GROUP BY ...有......'(沒有MySQL在這裏ATM)。思考? – 2010-09-18 18:38:55
@ p.campbell:我認爲JOIN選項會更乾淨。太糟糕了,在大多數其他數據庫中不支持UPDATE和DELETE中的JOIN。 – 2010-09-18 18:41:16