一条sql语句删除两条重复值的语句
在处理数据库表数据实,常常会遇到有重复数据的情况,这样的情况往往还就两条纪录重复,删除重复记录有好多方法,用程序循环来实现,也可用sql语句来实现,下面就介绍用sql语句实现的方法。
首先从上千条记录中找出是重复的记录,sql语句:
其中 keyColumn 就是关键列,以此来区分,其他数据。
其次,找出要删除的一列,怎么找,当然要根据能区分两条重复记录的标识了,别告诉我没有,那就建立一个自增id吧,下面也已自增id来区分数据的:
上面是要删除两条记录中最大id的记录,min函数就是删除最小的。
最后就是真正的要删除了,sql语句:
select keyColumn from testTable group by keyColumn having count(*)>1
其次,找出要删除的一列,怎么找,当然要根据能区分两条重复记录的标识了,别告诉我没有,那就建立一个自增id吧,下面也已自增id来区分数据的:
select max(id) from testTable where keyColumn in ( select keyColumn from testTable group by keyColumn having count(*)>1 ) group by keyColumn,id
最后就是真正的要删除了,sql语句:
delete from keyColumn where id in ( select max(id) from testTable where id in ( select keyColumn from testTable group by keyColumn having count(*)>1 ) group by keyColumn,id )