37

Androidで次の生のクエリを実行しようとしましたが、うまくいかないようです

String query ="SELECT DISTINCT category FROM event";
Cursor  cursor = mDb.rawQuery(query, null);
if (cursor != null) {
     cursor.moveToFirst();
}
return cursor; 

だから私はアンドロイドで query() メソッドを使用することにしました。これは次のようなものです

Cursor mCursor = mDb.query(EVENT_TABLE, new String[] {KEY_ROWID, KEY_CAT}, null, null,null,null, null)

rawquery の代わりに query() を使用するための個別のカテゴリを選択する方法を誰か教えてもらえますか?

4

4 に答える 4

63

GROUPBYただし、 ( send )で引数を送信することを忘れないでくださいNOT NULL

の列名を指定する必要がありますdistinct

例:

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);

true - 異なる TRUE

COLUMN_NAME_2- あなたが持っている名前の列はDISTINCTです。

それは私にとってはうまくいきます。

于 2012-12-14T13:17:09.873 に答える
50

この方法を使用できます:

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

ここで最初の引数は、distinct を使用するかどうかを指定します。

于 2012-06-27T04:27:35.707 に答える