2011-11-15 35 views
2

我試圖識別並選擇所有在我的mysql表中填充行下的公佈條目。如何識別和選擇所有重複的條目

我已經使用這個查詢嘗試:

SELECT id, link, COUNT(*) 
FROM linkuri 
HAVING COUNT(*)>1 
LIMIT 0 , 30 

的問題是,是導致我0的結果和我檢查manualy幾頁,我已經看到了一些dublicates條目。

我想要的是檢查並刪除行鏈接下填充的所有已公佈的條目。

+0

哪來的組語句的where子句? – ILovePaperTowels

+0

@ILovePaperTowels你可以輸入我一個演示查詢嗎? – JustMarshal

+0

您必須按某項進行分組,否則您不會得到任何結果,因爲每行的計數均爲0或1. dev.mysql.com/doc/refman/5.0/zh/ group-by-functions.htm – ILovePaperTowels

回答

1

您可能正在尋找

SELECT a.id, a.link, b.cnt 
FROM linkuri 
INNER JOIN 
(SELECT link, COUNT(*) AS cnt FROM linkuri GROUP BY link HAVING COUNT(*) >1)b 
ON (b.link = a.link) 
+0

+1這比我的完整。 – ILovePaperTowels

1

的問題與您的查詢是你不被任何東西分組。要找到重複項,您必須將它們按列分組,然後從每個組中獲得計數。有說法是喜歡上了組http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

SELECT id, link, COUNT(*) 
FROM linkuri 
GROUP BY link 
HAVING COUNT(*)>1 
LIMIT 0 , 30 
+0

是好的,但我想告訴我與女巫身份證是在公佈像id1 dublicated與id2 id3 dublicated與id6 – JustMarshal

+0

然後使用查詢從@ a1ex07 – ILovePaperTowels