article_title adlı bir sütunu olan bir tablo var. Diyelim ki tablo adı makaleler. Article_title verilerinin birden fazla kayıtta aynı olduğu kayıtları bulmam gerekiyor.
Kulağa hoş geldin gibi kimliğe de ihtiyacın var, çünkü article_title
yinelemelerin olduğu için kayıtları bulmak istiyorsun
GROUP BY ile temel MIN / MAX (2 kopyadan sonra kimlikleri özleyeceksiniz)
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
;
Ya da LIFO ID'leri için bir CSV oluşturmak için denormalizasyona geri dönün (eski id'ler çiftler halinde), fakat tüm kimlikleri burada biliyorsunuz ..
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/…