我想在Android中使用query()函數在SQLiteDatabase上執行查詢。我想在SelectionArgs []中傳遞參數,但是當我使用IN語句時,它似乎不能替代'?'有正確的論點。使用括號和?在Android SQLiteDatabase查詢()
我的查詢看起來是這樣的:
temp = database.query(TABLE_NAME_ENTRIES,
new String[] {"_id", "Entry", "Summary"},
"_id IN (?)",
new String[] {ids}, null, null, null);
,並導致空指針。調試給了我執行查詢使用語句「_id IN(?)」的信息,表明它似乎不能代替'?'如預期。當我將查詢改爲
temp = database.query(TABLE_NAME_ENTRIES,
new String[] {"_id", "Entry", "Summary"},
"_id IN (" + ids + ")",
null, null, null, null);
取而代之的是,我得到了預期的結果。
我真的很愚蠢在這個問題上,任何想法我做錯了什麼?
「ids」的值是什麼? –
它的一個字符串,像「192,123,23,13」 –
需要將它分解爲一個數組,作爲第四個參數傳遞,第三個(選擇字符串)中的每個索引都有一個「?」。如果它始終是4個ID,則可以對選擇字符串進行硬編碼。否則,你可以使用像Gabriella的'makePlaceholders()'方法來生成它。 –