DELETE FROM 表名 WHERE 重复字段 IN
(
SELECT a.id FROM
(
SELECT MAX(重复字段) id FROM 表名 a WHERE EXISTS
(
SELECT 1 FROM 表名 b WHERE a.重复字段=b.重复字段 GROUP BY 重复字段 HAVING COUNT(1)>1
)
GROUP BY 重复字段
) a
)
例如:
DELETE FROM sxpinews WHERE newsnum IN
(
SELECT a.id FROM
(
SELECT MAX(newsnum) id FROM sxpinews a WHERE EXISTS
(
SELECT 1 FROM sxpinews b WHERE a.newsnum=b.newsnum GROUP BY newsnum HAVING COUNT(1)>1
)
GROUP BY newsnum
) a
)
本文介绍了一种使用SQL语句从数据库中删除具有重复字段记录的方法。通过子查询找出具有相同字段且出现次数大于一次的记录,并仅保留每组重复记录中的最大ID对应的那条记录。
236

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



