2017-03-22 19 views
0

私のmysqlテーブル内で重複したエントリを見つけようとしています。私は、それぞれの分野を互いに比較したいと思います。ここに私のテーブルの構造は次のとおりです。MYSQL重複したエントリ

ID FirstName LastName Street ZIP  City  IpAddress 
1  Jack  Smith  2nd  12345 Sample1  12.21.24.212 
2  Paul  Miller  3rd  45685 Sample2  78.54.85.654 
3  Jenny  Smith  3rd  77273 Sample3  84.91.67.311 
4  Frank  Jackson  1st  27819 Sample1  78.54.85.654 
5  Jack  Smith  3rd  72891 Sample2  94.79.99.465 

今私が個別にストリートとip列を比較すると、私は一次および姓の組み合わせを見つけるしたいと思いたいと思います。実際に私のテーブルには私が検索したい列がいくつかありますが、上記の私の例はあなたに私が何を計画しているかのアイデアを与えるべきだと思います。

私は、潜在的に重複する可能性のあるエントリのID番号が必要です。

上記の例では、ファーストネームとラストネームの組み合わせを比較すると、出力はID番号1と5になります。

ストリート名を比較すると、出力はID番号2,3および5になります。

とIPアドレスのための出力は、誰もが私はこれを行うべきかについていくつかのアイデアを持っていたID番号2と4

すべきですか?これらの異なるテーブルを比較する最良の方法は何ですか?私はいくつかのクエリを行う必要がある場合は私は気にしない。

答えて

1

GROUP_CONCAT()を使用してグループ内のすべてのIDを取得し、GROUP BYを使用して、複製の対象の列を指定します。 COUNT(*)を使用すると、重複しているものだけを返すことができます。街のために

:名について

SELECT street, GROUP_CONCAT(id) 
FROM yourTable 
GROUP BY street 
HAVING COUNT(*) > 1 

SELECT firstname, lastname, GROUP_CONCAT(id) 
FROM yourTable 
GROUP BY firstname, lastname 
HAVING COUNT(*) > 1 
+0

あなたは天才先生です!!!どうもありがとうございます。これはまさに私が探していたものです。 – Dennis

関連する問題