删除数据库表中重复的记录
在处理数据的过程中,经常会遇到一个表中需要删除一些重复的记录。比如
在上表中,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删除!