memiliki tabel yang memiliki kolom bernama article_title. Katakanlah nama tabel adalah artikel. Saya perlu mencari tahu catatan di mana data article_title sama pada lebih dari satu catatan.
Kedengarannya seperti saya, Anda juga perlu memiliki id karena Anda ingin menemukan catatan berdasarkan article_title
karena Anda memiliki duplikat
MIN / MAX Dasar dengan GROUP BY (Anda akan kehilangan id saat lebih dari 2 duplikat)
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
;
Atau kembali ke denormalisasi untuk menghasilkan CSV untuk id LIFO (id lama dengan duplikat) tetapi Anda tahu semua id ada di sini ..
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/…