Android SQLite相当于给定的更新查询

时间:2012-04-05 12:55:33

标签: android sqlite

我必须在 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()值方法

2 个答案:

答案 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