⑴ 如何查找和刪除資料庫中的重復數據
法一: 用Group by語句 此查找很快的select count(num), max(name) from student –查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group by numhaving count(num) >;1 –按num分組後找出表中num列重復,即出現次數大於一次delete from student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—- 執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT * FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D –D相當於First,SecondWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—- 執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB DWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);法一: 用Group by語句 此查找很快的select count(num), max(name) from student –查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group by numhaving count(num) >;1 –按num分組後找出表中num列重復,即出現次數大於一次delete from student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—- 執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT * FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D –D相當於First,SecondWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—- 執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB DWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);
⑵ 如何查找資料庫中的重復數據
1、查找表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷
select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)
2、刪除表中多餘的重復記錄,重復記錄是根據單個欄位(peopleId)來判斷,只留有rowid最小的記錄
delete from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多餘的重復記錄(多個欄位)
select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having
(2)如何用c語言找重復的資料庫擴展閱讀
FROM子句指定SELECT語句查詢及與查凳凱詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。
例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:
SELECTusername,citytable.cityid
FROMusertable,citytable
WHEREusertable.cityid=citytable.cityid
在FROM子句中可用以下兩種格式為表或視圖指定別名:
表名 as 別名
表名 別名
參考資蔽讓料:百棗並喚度網路 SELECT語句
⑶ 如何查找資料庫中的重復數據
實現方式如下:
1。刪除全部重復記錄(慎用)
Delete表Where重復欄位In(Select重復欄位From表GroupBy重復欄位HavingCount(*)>1)
2。保留一條(這個應該是大多數人所需要的^_^)
DeleteHZTWhereIDNotIn(SelectMax(ID)FromHZTGroupByTitle)
註:此處保留ID最大一條記錄
3、查找表中多餘的重復記錄(多個欄位)
select*fromvitaea
where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)4、刪除表中多餘的重復記錄(多個欄位),只留有rowid最小的記錄
deletefromvitaea
where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)
androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)