tenha uma tabela que tenha uma coluna chamada article_title. Digamos que o nome da tabela seja artigos. Preciso descobrir os registros em que os dados do article_title são iguais em mais de um registro.
Parece-me que você também precisa ter o ID porque deseja encontrar registros com base em article_title
duplicatas.
MIN / MAX básico com GROUP BY (você perderá identificações quando mais de duas duplicatas)
SELECT
MIN(id) -- for FIFO id's (first id by duplicate)
, MAX(id) -- for LIFO id's (last id by duplicate)
, article_title
, COUNT(*)
FROM
articles
WHERE -- Maybe to filter out '' or IS NOT NULL
article_title != '' AND article_title IS NOT NULL
GROUP BY
article_title ASC
HAVING
COUNT(*) >= 2
;
Ou volte para a desnormalização para gerar um CSV para IDs LIFO (IDs antigos por duplicatas), mas você sabe todos os IDs aqui.
SELECT
GROUP_CONCAT(id ORDER BY ASC SEPARATOR ',') -- change to DESC if want the last record first
, article_title
, COUNT(*)
FROM
articles
GROUP BY
article_title ASC
HAVING
COUNT(*) >= 2
;
GROUP BY
: mysqlperformanceblog.com/2006/09/06/...