我与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