2012-03-02 91 views
6

我正在嘗試在mysql數據庫中做重複記錄。但是,我不想刪除記錄,只有兩列是重複的。我怎樣才能找到這些記錄?mysql只選擇從數據庫重複記錄

+0

http://stackoverflow.com/questions/854128/find-duplicate-records-in-mysql – 2012-03-02 22:06:32

回答

9

你能發表更多關於表結構的信息嗎?你是指什麼意思,有些是重複的,但只有兩列?

無論如何,你可以看看到GROUP BYCOUNTHAVING

SELECT `duped_field1`, `duped_field2`, COUNT(*) `tot` 
FROM `table` 
GROUP BY `duped_field1`, `duped_field2` 
HAVING `tot` > 1 
3

查找重複的一般原則是隻使用group byhaving count(*) > 1

如果你只是想知道重複列值:

select col1, col2 
from table 
group by col1, col2 
having count(*) > 1 

但是如果您想要查看其中,兩列是重複的所有領域:

select t.* 
from @tbl t 
where exists (select * 
       from @tbl d 
       where d.col1 = t.col1 and d.col2 = t.col2 
       group by d.col1 
       having COUNT(*) > 1) 
+0

或只需添加'*''.. SELECT *, COUNT(*)tot' – Fabrizio 2014-09-07 18:15:15