的Android SQLiteDatabase更新多行,我有以下的代碼,我用的是更新我的數據庫單行:使用,其中在或條款或
public int updateSentFieldForIncomingMessage(IncomingMessage incomingMessage)
{
SQLiteDatabase db;
int numberOfRowsAffected;
try
{
db = super.getWritableDatabase();
}
catch (SQLiteException e)
{
File dbFile = context.getDatabasePath(DATABASE_NAME);
db = SQLiteDatabase.openDatabase(dbFile.getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
}
try
{
ContentValues values = new ContentValues();
values.put(KEY_MESSAGE_SENT, true);
numberOfRowsAffected = db.update(TABLE_INCOMING_MESSAGES, values, KEY_ID + " = ?", new String[]{String.valueOf(incomingMessage.getId())});
}
finally
{
db.close();
}
return numberOfRowsAffected;
}
也能正常工作,但現在我想重構該方法,以便接受IncomingMessage列表而不是單個IncomingMessage參數。但是,當我得到這個說法:
db.update(TABLE_INCOMING_MESSAGES, values, KEY_ID + " = ?", new String[]{String.valueOf(incomingMessage.getId())});
我在WHERE子句我不知道如何修改它,這樣我可以指定多個行(通過KEY_ID)。我想要做的是說一些像KEY_ID IN (<multiple row IDs here>)
。那可能嗎?
所以,如果我的列表中它有5個值,你的意思是這樣KEY_ID +「= OR OR??? OR?OR?「,是否正確? – user685869
KEY_ID IN(?,?,?,?),new String [] {「id0」,「id1」,「id2」,「id3」} – Blackbelt
啊,好的。我現在明白了。非常感謝! – user685869