0

我想删除具有相同 badge_id 的重复行,我们检查 user_id :

例如,使用以下数据:

id user_id badge_id badge_slot
1 2 ACH_1 0
2 1 ACH_1 0
3 1 ACH_1 0
4 1 AAAAA 0

怎么删??

4

3 回答 3

3

如果您想保留最低记录,id您可以使用min()

delete from your_table
where id not in
(
   select * from 
   (
     select min(id)
     from your_table
     group by user_id, badge_id
   ) x
)

在 MySQL 中,您会遇到无法从要删除的同一个表中进行选择的问题。但是您可以通过子选择来克服这个问题。

于 2013-03-22T11:09:04.030 回答
0

尝试这个 ..

      ALTER IGNORE TABLE table ADD UNIQUE KEY idx1('badge_id','user_id'); 
于 2013-03-22T11:32:36.053 回答
0

尝试这个:

      DELETE * ,count(*)as n your_table by badge_id HAVING n>1 .

希望有帮助!

于 2013-03-22T11:10:56.083 回答