我试图从下面的代码行复制这个SQLite语句:
Cursor cursor = db.rawQuery("update tbl_details SET ticket = replace(ticket, " + tempID + ", " + ticket + ")", null);
到这一个:
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("ticket", "replace(ticket, " + tempID + ", " + ticket + ")");
db.update("tbl_details", cv, null, null);
return true;
我要做的是获取一个新ID并替换数据库中旧临时ID的所有实例。但上面的代码正在更改故障单列中的所有记录。
请帮忙。谢谢!
答案 0 :(得分:2)
您可以使用ContentValues
仅绑定文字值,而不是replace(...)
之类的表达式。
要运行原始UPDATE
SQL,只需使用execSQL()
代替rawQuery()
。 <{1}}实际上不会在返回rawQuery()
之前运行代码。