0

Java コードの SQL クエリから取得した duplicateDataLst という名前のリストがあり、DB テーブルにはすべての重複データとその数があります。

DB テーブルの特定のデータと重複するデータを取得したいと考えています。私が試したことは

for(int i=0; i<duplicateDataLst .size(); i++)
{
  Object obj[] = (Object[]) duplicateDataLst.get(i);

      Long  id= (Long) obj[0]; 
      .
      .
      Long count= (Long) obj[12]; 
//Similarly other fields

 if(count>1)
{
  for(int j=i+1;j<(i+count), j++)
  {
    Object obj1[] = (Object[]) duplicateDataLst.get(j);
      Long  id1= (Long) obj1[0]; 
      .
      .
      Long count1= (Long) obj1[12];
  }
}
}

このようにして、SQLクエリによってグループ化された重複データを取得しています。しかし、私の問題は、前のデータではなく、データの隣にのみ重複データを取得していることです。たとえば、特定のテーブル 1-a,2-a,3-a,4-a,5-b,6-b で 2-ai に移動すると、3-a,4-a が重複データとして取得されますが、取得していない 1-a も必要です。解決策を提供してください...どうもありがとう

4

1 に答える 1

1

SQLクエリで重複のみを取得できます.Javascriptでこれを処理する必要はありません.SQLはこのようなもののために構築されています.

サンプルクエリ (テーブルのデザインがわからない場合):

SELECT FieldData, COUNT(*) FROM Table GROUP BY FieldData HAVING COUNT(*) > 1

これは、重複した行と重複した回数のみを取得します。

于 2013-09-10T13:10:48.800 に答える