1

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

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);
4

1 回答 1

0

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

为了您的目的,您需要rawQuery

db.rawQuery("update " + TABLE_DEFECTS + " set " + MARKER_ID + " = " + MARKER_ID + " -1 where " + MARKER_ID + " > ?", new String[] { String.valueOf(markerId) });
于 2013-01-02T09:36:56.900 回答