gpt4 book ai didi

android.database.sqlite.SQLiteException : near "ORDER": syntax error (code 1): ,

转载 作者:太空狗 更新时间:2023-10-29 15:46:18 26 4
gpt4 key购买 nike

我一直收到这个错误。我确定这是一个简单的语法错误。有人看到了吗?我调试了 ~30 分钟,但似乎找不到它。

查询

DELETE FROM SuccessfulCalls ORDER BY id DESC LIMIT 2

要插入数据库的实际代码。

SQLiteHelper sqLiteHelper     = ApplicationClass.getSqLiteHelper();
SQLiteDatabase db = sqLiteHelper.getWritableDatabase();
String query = "DELETE FROM " + sqLiteHelper.SUCCESSFULCALLSTABLE + " ORDER BY " + sqLiteHelper.SUCCESSFULID + " DESC LIMIT " + Constants.NUMBEROFCALLSTODELETE ;
db.rawQuery(query, null);
db.close();

更新我试过这个查询,但由于某种原因它没有从我的数据库中删除行。

DELETE FROM SuccessfulCalls WHERE id IN ( SELECT id FROM SuccessfulCalls ORDER BY id DESC LIMIT 5 );

但我知道查询正在执行,因为当我尝试时。它删除了我的整个表格。 从 SuccessfulCalls 中删除

更新我错误地设置了主键。对于 sql lite 自动增加一个主键,他们需要 INTEGER PRIMARY KEY 而不是 int PRIMARY KEY

最佳答案

ORDER BYLIMIT 在语法上不允许用于 DELETE 查询,除非 sqlite is built with SQLITE_ENABLE_UPDATE_DELETE_LIMIT Android 不是这种情况。

如果你想删除最高的两个id行,使用

DELETE FROM SuccessfullCalls WHERE id IN (SELECT id FROM SuccessfulCalls ORDER BY id DESC LIMIT 2);

对此类查询使用 execSQL() 而不是 rawQuery() 让 SQL 实际运行。

关于android.database.sqlite.SQLiteException : near "ORDER": syntax error (code 1): ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23936829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com