我想删除具有相同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
如何删除??
答案 0 :(得分: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中,您遇到的问题是您无法从要删除的同一个表中进行选择。但你可以通过一个子选择来克服这一点。
答案 1 :(得分:0)
试试这个:
DELETE * ,count(*)as n your_table by badge_id HAVING n>1 .
希望它有所帮助!
答案 2 :(得分:0)
试试这个..
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1('badge_id','user_id');