mysql duplicate row code example

Example 1: mysql get latest duplicate rows

SELECT
   t1.primary_id,
   t1.duplicate_id,
   t1.data1,
   t1.data2
FROM
   table_name t1
LEFT JOIN table_name t2
	ON (t1.duplicate_id = t2.duplicate_id AND t1.primary_id < t2.primary_id) 
WHERE
	t2.primary_id IS NULL

Example 2: mysql delete duplicate rows

DELETE FROM table_name 
WHERE 
	id IN (
	SELECT 
		id 
	FROM (
		SELECT 
			id,
			ROW_NUMBER() OVER (
				PARTITION BY field_1
				ORDER BY field_1) AS row_num
		FROM 
			table_name
		
	) t
    WHERE row_num > 1
);

Example 3: mysql find duplicates in same table

## Find ALL duplicate recods by value (without grouping them by value) ##
# to find the duplicate, 
# replace all instances of tableName with your table name
# and all instances of duplicateField with the field name where you look for duplicates
SELECT t1.*
FROM tableName AS t1
INNER JOIN(
	SELECT duplicateField
	FROM tableName
	GROUP BY duplicateField
	HAVING COUNT(duplicateField) > 1
)temp ON t1.duplicateField = temp.duplicateField
order by duplicateField

Tags:

Sql Example