есть таблица, в которой есть столбец под названием 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/…