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 あああああ 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

これを試して:

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

それが役立つことを願っています!

于 2013-03-22T11:10:56.083 に答える
0

これを試して ..

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