Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓sqlite更新最后插入行_Android_Sqlite - Fatal编程技术网

Android 安卓sqlite更新最后插入行

Android 安卓sqlite更新最后插入行,android,sqlite,Android,Sqlite,我想更新最后插入的行,但出现错误: 08-20 12:08:23.091:E/AndroidRuntime(13598):android.database.sqlite.SQLiteException:接近“顺序”:语法错误 (代码1):,编译时:更新审阅集json=?在哪里点菜 日期说明限制1 我的代码: public int updateDataJSON(Review review) { SQLiteDatabase db = this.getWritableDatabase();

我想更新最后插入的行,但出现错误:

08-20 12:08:23.091:E/AndroidRuntime(13598):android.database.sqlite.SQLiteException:接近“顺序”:语法错误 (代码1):,编译时:更新审阅集json=?在哪里点菜 日期说明限制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);
}

ORDER BY
仅在
SELECT
查询中有效,不在
UPDATE
s中有效

考虑以下几点:

  • 将上次插入的行id存储为调用
    insert()
    返回的行id:

  • 在更新中使用rowid,如

    db.update(TABLE_REVIEW, values, "ROWID=?", new String[] { String.valueOf(lastInsertRowId)2 });
    

  • 您必须在单独的步骤中读取最后日期:

    db.update(..., "date = (SELECT max(date) FROM ReviewTable)", ...);
    
    (如果有多行具有相同的
    date
    值,这将更新所有行。)

    db.update(..., "date = (SELECT max(date) FROM ReviewTable)", ...);