2017-04-24 20 views
-1

我試圖通過內容提供程序獲取具有兩列值中的任意一列的所有行,但是作爲內容提供者的新手還不知道如何做到這一點。 我的查詢代碼看起來像我們如何使查詢語句通過內容提供程序獲取具有列的兩個值中的任何一個的所有行提供商

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就是這樣,我認爲用兩個參數要求相同的值並不好。我不好意思,我想知道會有類似OR的東西。 –

+0

@Selvin你可以幫我使用Content Provider爲多個表加入嗎?我也對這一部分感到困惑。 –

回答

1

第二個參數Projection定義了您想要檢索的列作爲結果。 如果您將它作爲NULL提供,它將返回所有列。

你的第二個參數應該是你想要的結果列名的數組。

例如

新的String [] { 「COLUMN_NAME」, 「ANOTHER_COLUMN_NAME」}

而且您的選擇應該是:

新的String [] { 「未完成」, 「待定」}如果你將這些條目中的一個作爲值。

+0

來自Selvin的評論首先爲我工作。我不知道我應該也使用a =?或a =?在選擇字符串中作爲第三參數。 –

相關問題