问题描述
我正在Android上构建应用程序。 我想做的就是将1添加到数据库中的上一个值。
数据库中列分数的值为200。
SQLiteDatabase db = database.getWritableDatabase();
int resultRows = 0;
values = new ContentValues(1);
values.put(DBContract.Countries.SCORE, DBContract.Countries.SCORE + " + 1");
resultRows = db.update(DBContract.Countries.TABLE_NAME, values, DBContract.Countries.ISO + " = ?", selectionArgs);
实际输出为SCORE + 1
而不是201。因此,它将其作为String
而不是将其添加。
有人有什么想法吗?
1楼
您可以使用ContentValues
仅提供文字值。
对于SQL表达式, execSQL()
原始SQL与execSQL()
:
db.execSQL("UPDATE " + DBContract.Countries.TABLE_NAME + " SET " +
DBContract.Countries.SCORE + "=" + DBContract.Countries.SCORE + " + 1 " +
"WHERE " + DBContract.Countries.ISO + " = ?", selectionArgs);