我有一个查询,必须将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);
答案 0 :(得分:0)
update
是一种专门设计的方法,不接受任何此类计算。您应该在contentValues中输入您想要的确切值。
出于您的目的,您需要rawQuery
:
db.rawQuery("update " + TABLE_DEFECTS + " set " + MARKER_ID + " = " + MARKER_ID + " -1 where " + MARKER_ID + " > ?", new String[] { String.valueOf(markerId) });