在一家韩国电商的面试中被问到了,当时一脸懵逼,没想法……
回来想了想,还是有些思路的……唉……临场真是弱啊……
第一步:查询重复记录
SELECT * FROM TableName
WHERE RepeatFiled IN (
SELECT RepeatFiled
FROM TableName
GROUP BY RepeatFiled
HAVING COUNT(RepeatFiled) > 1
)这一段逻辑很简单,就是把重复条数大于1的全部都搞出来就行了。
第二步:删除重复记录,只保留一条
SELECT * FROM TableName
WHERE RepeatFiled IN (
SELECT RepeatFiled
FROM TableName
GROUP BY RepeatFiled
HAVING COUNT(RepeatFiled) > 1
AND
ID NOT IN (
SELECT MIN(ID)
FROM TableName
GROUP RepeatFiled
HAVING COUNT(RepeatFiled) > 1
)
)在上一步的基础上继续过滤,那就把最小值留下就行了,大功告成!

本文介绍了一种使用SQL查询和删除数据库表中重复记录的方法。首先通过查询找出所有重复的记录,然后利用这些信息进一步筛选并仅保留每组重复记录中ID最小的一条。
,只留一条。&spm=1001.2101.3001.5002&articleId=52806087&d=1&t=3&u=8c732c8cb5da40409b8a62e1e1985e13)
590

被折叠的 条评论
为什么被折叠?



