我必须在 Android SQLite
中执行以下查询UPDATE player SET rank=rank+1 WHERE rank >= 3;
此处等级是 INTEGER 类型的列名。
我知道更新方法
update(tablename, values, whereClause, whereArgs);
我将播放器作为第一个参数, rank> = 3 作为第三个参数和 null 为最后一个参数,但我无法找到要传递的内容第二个参数。根据文档,它应该是 ContentValues 的对象。
所以我创建了它的对象
ContentValues values = new ContentValues();
values.put("rank",?????);
我很担心将排名键的值放在我的表格中的列。请建议我将值作为值传递给 put()值方法
答案 0 :(得分:5)
或者您可以使用exec,并执行您的sql命令
db.execSQL("UPDATE player SET rank=rank+1 WHERE rank >= 3");
使用update方法执行此操作,您需要使用Cursor获取变量中的当前排名,然后手动执行+ thing“current + 1”
答案 1 :(得分:2)
我认为更新方法不是 One-Size-Fit-All 方法。所以我认为你需要使用 rawQuery()来实现这种sql执行。例如:
db.rawQuery("UPDATE player SET rank=rank+1 WHERE rank >= 3;", null);
或者可能使用el7r
所说的execSQL