我想更新最后插入的行,但是收到错误:
08-20 12:08:23.091:E / AndroidRuntime(13598):android.database.sqlite.SQLiteException:near“ORDER”:语法错误 (代码1):,编译时:UPDATE REVIEW SET json =?在哪里订购 日期DESC LIMIT 1
我的代码:
public int updateDataJSON(Review review) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_JSON, review.getJson());
return db.update(TABLE_REVIEW, values, " ORDER BY date DESC LIMIT 1", null);
}
答案 0 :(得分:1)
ORDER BY
等仅在SELECT
次查询中有效,而非UPDATE
次。
请考虑以下事项:
存储调用insert()
时返回的最后插入的行ID:
long lastInsertRowId = db.insert(...);
在更新中使用rowid
db.update(TABLE_REVIEW, values, "ROWID=?", new String[] { String.valueOf(lastInsertRowId)2 });
答案 1 :(得分:1)
您必须在单独的步骤中阅读最后一个日期:
db.update(..., "date = (SELECT max(date) FROM ReviewTable)", ...);
(如果有多个行具有相同的date
值,则会更新所有行。)