程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 幾種刪除重復記錄的sql語句

幾種刪除重復記錄的sql語句

編輯:MySQL綜合教程

1.用rowid方法

2.用group by方法

3.用distinct方法

 

1。用rowid方法

據據oracle帶的rowid屬性,進行判斷,是否存在重復,語句如下:
查數據: 
   

select * from table1 a where rowid !=(select  max(rowid)  
    from table1 b where a.name1=b.name1 and a.name2=b.name2......)

刪數據:

   delete  from table1 a where rowid !=(select  max(rowid)  
    from table1 b where a.name1=b.name1 and a.name2=b.name2......)

2.group by方法

查數據:
 

 select count(num), max(name) from student --列出重復的記錄數,並列出他的name屬性
  group by num
  having count(num) >1 --按num分組後找出表中num列重復,即出現次數大於一次

刪數據:
 

 delete from student
  group by num
  having count(num) >1

  這樣的話就把所有重復的都刪除了。

3.用distinct方法 -對於小的表比較有用

create table table_new as  select distinct *  from table1 minux
truncate table table1;
insert into table1 select * from table_new;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved