có một bảng có một cột được gọi là article_title. Hãy nói tên bảng là bài viết. Tôi cần tìm ra các bản ghi trong đó dữ liệu article_title giống nhau trên nhiều bản ghi.
Âm thanh như với tôi bạn cũng cần phải có id vì bạn muốn tìm bản ghi dựa trên article_title
vì bạn có bản sao
Cơ bản MIN / MAX với NHÓM THEO (bạn sẽ bỏ lỡ id khi có nhiều hơn 2 bản sao)
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
;
Hoặc quay lại việc không chuẩn hóa để tạo CSV cho id LIFO (id cũ hơn do trùng lặp) nhưng bạn biết tất cả id ở đây ..
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/...