MYSQL数据库删除重复数据行

😂 这篇文章最后更新于1749天前,您需要注意相关的内容是否还可用。

下列Sql可用in,建议用exists

SELECT *
FROM coldknow a
WHERE EXISTS (
		SELECT title, img
		FROM coldknow
		GROUP BY title, img
		HAVING (COUNT(1) > 1
		AND a.title = title
		AND a.img = img)
	)
	AND NOT EXISTS (
		SELECT MIN(id)
		FROM coldknow
		GROUP BY title, img
		HAVING COUNT(1) > 1
		AND MIN(id) = id
	)

a作为父表与虚拟子表进行关联,前exists存在父表字段与虚拟表相同的特征,后exists排除最小id的行,即保留重复记录中最小id的行