xxxxxxxxxx
-- multiple columns
SELECT COUNT(*) c ,
CONCAT(students.first_name, "----",students.last_name)
FROM students WHERE students.class_id = classes.id
GROUP BY CONCAT(first_name,"----",last_name) HAVING c > 1;
xxxxxxxxxx
SELECT varchar_col
FROM table
GROUP BY varchar_col
HAVING COUNT(*) > 1;
xxxxxxxxxx
## 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
xxxxxxxxxx
SELECT name, COUNT(*) c FROM table GROUP BY name HAVING c > 1;
xxxxxxxxxx
select t.*
from table t
where exists (select 1 from table t2 where t2.url = t.url and t2.id <> t.id);
xxxxxxxxxx
SELECT *
FROM mytable mto
WHERE EXISTS
(
SELECT 1
FROM mytable mti
WHERE mti.varchar_column = mto.varchar_column
LIMIT 1, 1
)
ORDER BY varchar_column
xxxxxxxxxx
SELECT varchar_col
FROM table
GROUP BY varchar_col
HAVING COUNT(*) > 1;
xxxxxxxxxx
SELECT GROUP_CONCAT(id), name, COUNT(*) c
FROM documents
GROUP BY name
HAVING c > 1;