2011-11-15 17 views
2

my 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/en/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

はいいですが、私は魔女のIDで私を見せたいid1のように公開されたid1のようにidublished id3で公開されたID3 – JustMarshal

+0

@ a1ex07 – ILovePaperTowels

関連する問題