tener una tabla que tenga una columna llamada article_title. Digamos que el nombre de la tabla es artículos. Necesito encontrar los registros donde los datos de article_title son los mismos en más de un registro.
A mí me parece que también necesitas tener la identificación porque quieres encontrar registros basados en article_title
porque tienes duplicados
MIN / MAX básico con GROUP BY (se perderán las identificaciones cuando haya más de 2 duplicados)
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
;
O regrese a la desnormalización para generar un CSV para los ID de LIFO (ID más antiguos por duplicado) pero ya conoce todos los ID aquí.
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/…