資料庫如果UI設計不當,沒有驗證是否重複時,很快就會面臨到這個問題了。有時候,多人維護同一格式的資料,匯整時也會有這樣的問題。
閒話休敘,直奔主題吧!要找出資料庫重複筆數,最簡單的就是用下列SQL
SELECT id FROM table GROUP BY id HAVING count(*)>1
如果要判斷多個欄位,就再加工一下:
SELECT id1,id2 FROM table GROUP BY id1, id2HAVING count(*)>1
但這樣做有缺點,因為只能看到重複的,不能知道其它欄位的值。如果冒然用Select *,或是在select時加入其它欄位,資料庫會立即出錯。
解決的辦法如下
Select * from table where id in ( select id from table group by id having count(id)>1)
如果想要方便一點,就在加上id的排序,可以立即對照。
沒有留言:
張貼留言