2016-04-29 12 views
-1

これを検索すると多くの結果が出てくることは知っていますが、私がしようとしているものに対して簡単で明確な答えが見つかりません。私は重複してすべての行を削除したいMySQL削除後続の複製

「CALL_ID」(PK、ユニークな、自動インクリメント)&「GUID」:

それを簡単にするには、私は2つの列を持つテーブルを持っていると言いますそれぞれのguidの最初の出現を維持します。

答えて

0

あなたはjoinを使用することができます。これはまた、NULLのGUID列値を持つすべての行を削除します

delete c 
    from calls c left join 
     (select guid, min(call_id) as minci 
      from calls 
      group by guid 
     ) cc 
     on cc.minci = c.call_id 
    where cc.minci is null; 
+0

注こと。 (これはOPが望んでいる動作かもしれませんが、仕様には何も言及していませんでした)GUIDのNULL値がお互いの「重複」であると見なしますか、それとも区別されると考えていますか? – spencer7593

+0

ありがとうございます。私はむしろnullを削除しないでください – nevodj

+0

'guidが' NULL'である可能性がある場合、 'delete'に' where guid is not null'を追加してください。 –

関連する問題