мати таблицю зі стовпцем під назвою article_title. Скажімо, назва таблиці - це статті. Мені потрібно з’ясувати записи, де дані article_title однакові для більш ніж одного запису.
Як мені здається, вам також потрібно мати ідентифікатор, оскільки ви хочете знайти записи на основі, article_title
оскільки у вас є дублікати
Основні MIN / MAX з GROUP BY (ви пропустите ідентифікатори, коли більше 2-х дублів)
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
;
Або повернутися до денормалізації, щоб створити CSV для ідентифікаторів LIFO (старший ідентифікатор за дублікатами), але ви знаєте, що всі ідентифікатори тут.
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/…