我想删除具有相同 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
怎么删??
我想删除具有相同 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
怎么删??
如果您想保留最低记录,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 中,您会遇到无法从要删除的同一个表中进行选择的问题。但是您可以通过子选择来克服这个问题。
尝试这个 ..
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1('badge_id','user_id');
尝试这个:
DELETE * ,count(*)as n your_table by badge_id HAVING n>1 .
希望有帮助!