2010-12-17 10 views
1

自分のデータベースに対してselect-where-uniqueクエリを書くことができません。Androidでselect-where-column = unique queryを書く方法

 Cursor mCursor = 
       db.query(true, DATABASE_TABLE, new String[] { 
         KEY_ROWID, 
         KEY_KEYWORD}, 
         KEY_TIME + "=" + strtime, 
         null, 
         null, 
         null, 
         null, 
         null); 

は誰が私が列KEY_KEYWORDための「DISTINCT」のキーワードを挿入して助けてください: 私が使用して、where句を使用して、私のDBを照会するために管理していますか?

Thanx事前に。

Cursor mCursor = 
       db.query(true, DATABASE_TABLE, new String[] { 
         KEY_ROWID, 
         KEY_KEYWORD}, 
         null, 
         null, 
         KEY_KEYWORD, 
         null, 
         null, 
         null); 

をし、それが動作するかどうか私に教えて:

答えて

4

は私のために働い以下:

   Cursor mCursor = 
       db.query(true, DATABASE_TABLE, new String[] { 
         KEY_KEYWORD}, 
         KEY_TIME + "=" + strtime, 
         null, 
         null, 
         null, 
         null, 
         null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; 

ありがとうデジデリオとlucho手助けしようとしているため。

2

これを試してみてください。

+1

ありがとうございます!これはうまくいった。一意の行全体を一意にするにはDISTINCTを使用し、一列のみの場合はGroupByを使用する必要があります。 –

0

問題の解決策は、SQLiteQueryBuilderクラスを使用することです。

例:

クエリ:A、B A.ID = B.ID

SQLiteQueryBuilder sqLiteQueryBuilder = new SQLiteQueryBuilder(); 
sqLiteQueryBuilder.setTables("A, B"); 
sqLiteQueryBuilder.setDistinct(true); 

String selection = "A.ID = B.ID"; 

Cursor c = sqLiteQueryBuilder.query(db, 
    new String[]{"A.x"}, 
    selection, 
    null, 
    null, 
    null, 
    null); 

乾杯は異なるA.xを選択!