删除数据库表中重复的记录

时间:2022-05-16 22:14:31

删除数据库表中重复的记录

在处理数据的过程中,经常会遇到一个表中需要删除一些重复的记录。比如

删除数据库表中重复的记录

在上表中,timeofday和cb_key_db_person两个字段,圈起来的记录是重复的,如果需要删除,即可用以下sql语句将要删除的记录查询出来:

SELECT * FROM lem
WHERE (timeofday,cb_key_db_person) IN (SELECT timeofday,cb_key_db_person FROM lem
                                                                      GROUP BY timeofday,cb_key_db_person
                                                                      HAVING COUNT(timeofday)>1 
                                                                       );

发现查询的结果是:

删除数据库表中重复的记录

正是我们想要删除的记录,所以,就可以将上面的sql语句中的SELECT改为DELETE即可。

这里之所以先用SELECT查询,是因为如果直接用DELETE语句,一旦删除就是不可逆转的,万一删除了就通常都找不回来了,所以保险的做法是,先用SELECT将要删除的记录查询出来,如果确实是自己想要的结果,再用DELETE删除!