我想在Android中的SQLiteDatabase中查詢一個表,其中一個字段位於整數列表中。有沒有使用查詢功能來做到這一點?我嘗試了下面的代碼,沒有運氣,其中generatePlayerIdList(players)返回一個逗號分隔的玩家ID列表(例如「0,1,2」)。通過Android上SQLiteDatabase中的整數列表查詢
readableDatabase.query(
"player_position",
new String[]{"id", "player_id", "turn_number", "position"},
"player_id IN (?)",
new String[]{generatePlayerIdList(players)},
null,
null,
null);
我已經成功地得到查詢用下面的代碼的工作,但是這是醜陋的,當我在其他文件中由於量表和列名(這裏沒有顯示的readabilities緣故)正在拉字符串連接。
readableDatabase.rawQuery(
"SELECT id, player_id, turn_number, position " +
"FROM player_position " +
"WHERE player_id IN(" + generatePlayerIdList(players) + ")",
null);
你指的是什麼級聯?我的意思是,從我的角度來看,與第一個建議相比,您的第二個建議應該是更好的性能。 –
遵循這裏的建議http://developer.android.com/training/basics/data-storage/databases.html#DefineContract後者的查詢變得像這樣: 「SELECT」+ PlayerPosition.ID +「,」+ PlayerPosition .PLAYER_ID +「,」+ PlayerPosition.TURN_NUMBER + ... 使用這些常量使用查詢方法會更好。 – kentsurrey
SQLite綁定只能用文字來完成,而不能用於提供參數列表。除非你想要逗號分隔的問號參數,這將涉及更多的連接,沒有任何好處,你應該繼續使用你當前的解決方案。如果你想保持清潔,你可以使用字符串格式。 – corsair992