android.database.sqlite.SQLiteException:靠近“ORDER”:语法错误(代码1):,

2024-03-03

我不断收到此错误。我确信这是一个简单的语法错误。有人看到吗?我调试了大约 30 分钟,似乎找不到它。

query

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();

UPDATE我已经尝试过这个查询,但由于某种原因它不会从我的数据库中删除行。

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

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

UPDATE我的主键设置错误。对于 sqlite 自动递增主键,它们需要 INTEGER PRIMARY KEY 而不是 int PRIMARY KEY


ORDER BY and LIMIT语法上不允许使用DELETE查询除非sqlite 是用SQLITE_ENABLE_UPDATE_DELETE_LIMIT http://www.sqlite.org/lang_delete.htmlAndroid 上则不然。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android.database.sqlite.SQLiteException:靠近“ORDER”:语法错误(代码1):, 的相关文章

随机推荐