MYSQL 查询重复数据

1 查询 people_no 重复的记录

SELECT
	*
FROM
	people
WHERE
	people_no IN (
		SELECT
			people_no
		FROM
			people
		GROUP BY
			people_no
		HAVING
			count(people_no) > 1
	);

2 查询 people_no 重复的记录 ,排除最小 id,如果删除改为delete from

SELECT
	*
FROM
	people
WHERE
	people_no IN (
		SELECT
			people_no
		FROM
			people
		GROUP BY
			people_no
		HAVING
			count(people_no) > 1
	)
AND id NOT IN (
	SELECT
		min(id)
	FROM
		people
	GROUP BY
		people_no
	HAVING
		count(people_no) > 1
);

3 查询 people_no、people_name 重复的记录

SELECT
	*
FROM
	people a
WHERE
	(a.people_no, a.people_name) IN (
		SELECT
			people_no,
			people_name
		FROM
			people
		GROUP BY
			people_no,
			people_name
		HAVING
			count(*) > 1
	);

4 查询 people_no、people_name 重复的记录,排除最小 id

SELECT
	*
FROM
	people a
WHERE
	(a.people_no, a.people_name) IN (
		SELECT
			people_no,
			people_name
		FROM
			people
		GROUP BY
			people_no,
			people_name
		HAVING
			count(*) > 1
	)
AND a.id NOT IN (
	SELECT
		min(id)
	FROM
		people
	GROUP BY
		people_no,
		people_name
	HAVING
		count(*) > 1
);
Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐