2017-04-24 10 views
-1

コンテンツプロバイダを介して2つの値のいずれかを使用して列を取得しようとしています。それをどうやって行うのかまだ分かりません。 マイクエリコードはコンテンツプロバイダを通じて列の2つの値のいずれかを持つすべての行を取得するにはどうすればよいですか

case META_INFO: 
      retCursor = db.query(
        TigerContract.MetaInfoEntry.TABLE_NAME, 
        projection, 
        selection, 
        selectionArgs, 
        null, 
        null, 
        sortOrder 
      ); 

のように見え、dbHelperからそれは次のようになります。私はそれを行う方法がわからない

Cursor cursor = myCR.query(TigerContract.MetaInfoEntry.CONTENT_URI, null, TigerContract.MetaInfoEntry.COLUMN_RECORD_STATUS + " =?", new String[]{String.valueOf("Incomplete OR Pending")}, null); 

、基本的に私はCOLUMN_RECORD_STATUSで不完全または保留中の値のいずれかを持つすべての行をしたいですフィールド。私は、コンテンツプロバイダのもので作られたハンマーで救世主を待っています。

+1

ああ、明らかに選択: 'a =? OR a =? 'とselectionArgs:' new String [] {a、b} ' – Selvin

+0

@Selvinはそれだけで、2つの引数を使って同じ値を求めるのは良くないと思いました。私の悪いところには、ORのようなものがあることに着目していた。 –

+0

@Selvinそして、コンテンツプロバイダを使用して複数のテーブルの結合を手伝ってください。私はその部分も混乱しています。 –

答えて

1

2番目の引数Projectionは、結果として取得する列を定義します。 NULLとして指定すると、すべての列が返されます。

2番目の引数は結果として必要な列名の配列でなければなりません。

新しいString [] { "COLUMN_NAME"、 "ANOTHER_COLUMN_NAME"}

また、あなたの選択は次のようになります。

新しいString [] { "不完全"、 "保留"}あなたの場合これらのエントリの1つを値として持つ

+0

最初の場所でSelvinからのコメントが私のために働いた。私は=を使うべきであることを知りませんでしたか?またはa =?第3のパラメータとしての選択文字列。 –

関連する問題