sqlite更新查询问题

时间:2013-01-02 08:37:51

标签: android android-sqlite

我有一个查询,必须将DB中的值减1。 Here是实际问题的链接和我收到的答案

update t
set num = num-1
where num > <val deleted>

现在,上面是将数据库中的实际数字更新为字符串'num-1'。如何递减值而不将值更改为字符串'num-1'。列的数据类型是整数。

实际查询是:

ContentValues dataToInsert = new ContentValues();                          
dataToInsert.put(MARKER_ID, MARKER_ID+"-1");
String where = /*IMAGE_ID_F+" = " +imageId+ " AND "+*/MARKER_ID+" > "+markerId;
int resultUpdate = db.update(TABLE_DEFECTS, dataToInsert, where, null);

1 个答案:

答案 0 :(得分:0)

update是一种专门设计的方法,不接受任何此类计算。您应该在contentValues中输入您想要的确切值。

出于您的目的,您需要rawQuery

db.rawQuery("update " + TABLE_DEFECTS + " set " + MARKER_ID + " = " + MARKER_ID + " -1 where " + MARKER_ID + " > ?", new String[] { String.valueOf(markerId) });