2012-01-09 12 views
4

私は、カーソルの異なる値を持つカーソルを返すだけです。 列「グループ」は複数の項目を有しているだけ2値を有する:1,2,1,1,1,2,2,2,1異なる値のカーソルのみを取得する方法は?

String[] FROM = {Groups,_ID}; 

public Cursor getGroups(){ 
//...... 
return db.query(TABLE_NAME,FROM,null,null,null,null,null); 
} 

は{1,2,1を含むカーソルを戻します、1,1,2,2,2,1}ですが、私はちょうど{1,2}を含んでいます。

答えて

8

あなたはこのようなクエリをしながら

public Cursor usingDistinct(String column_name) { 
     return db.rawQuery("select DISTINCT "+column_name+" from "+TBL_NAME, null); 
    } 
+2

1イエスは個別 –

+0

エラーでクエリを実装することに同意GROUP BY列名を追加することを忘れないでくださいあなたは 'cursor.moveToFirst()を呼び出すなかったためだった;'(カーソルcursor = getGroups '後);' –

+0

今私はカーソルから値を抽出したい:私は試してみました: \t \t文字列gr1 = cursor.getString(0); \t \t文字列gr2 = cursor.getString(1); 'エラー:CursorIndexOutOfBoundsException:インデックス-1が要求され、サイズは2です。それから、私はそれを次のように変更しました: 'Cursor cursor = db.rawQuery(" DISTINCT "+ column_name +" from "+ TABLE_NAME、null); \t \t \t \t場合(カーソル= NULL!){ \t \t \t cursor.moveToFirst()。 \t \t} \t \t \t \t戻りカーソル; 'と今、私は最初の値にアクセスすることができる、のgetString(0)。 getString(1)を試すと、NULLが返されます。どのように私はカーソルから両方の値を抽出することができます任意のアイデア?今すぐ提供されるソリューションをありがとう。 – AlexAndro

5

あなたは明確な引数を使用することができ、このようなSQLクエリを持つことができます。

public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 

は、より多くのclearityこのdocに従ってください。

+0

まさに私が探していたもの:) – User3

0

あなたは明確な

Cursor cursor = db.query(true, YOUR_TABLE_NAME, new String[] { COLUMN_NAME_1 ,COLUMN_NAME_2, COLUMN_NAME_3 }, null, null, COLUMN_NAME_2, null, null, null); 

COLUMN_NAME_2の列名を与えるために持っているようにあなたは、サンプルクエリの下に使用することができます - 明確なため、列の名前。

関連する問題