我试图在我的android项目中从我的本地数据库获取1000个数据的限制。因此我写了这个查询,但我得到语法错误:
int value = 0;
String updateTime = "0";
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_ALL_DETAILS_LOCAL + " WHERE " + KEY_UPDATE_TIME + " = '"+ updateTime + "'" + " desc LIMIT " + value + ", 1000";
Cursor cursor = db.rawQuery(selectQuery, null
日志中的错误
android.database.sqlite.SQLiteException: near "desc": syntax error (code 1): , while compiling: SELECT * FROM AllDetails WHERE updateTime = '0' desc LIMIT 0, 1000
我不确定这里的语法错误是什么?
答案 0 :(得分:2)
您需要指定column
才能使用desc
,因此如果您想使用id
对其进行排序,则可以编写
SELECT * FROM AllDetails WHERE updateTime = '0' order by id desc LIMIT 0, 1000
您必须使用order by
子句来完成相同的
答案 1 :(得分:0)
在您的代码中,您使用的是desc,但未通过从查询中删除desc或在那里添加一些字段来指定要排序的字段。
<强> 1。删除desc
int value = 0;
String updateTime = "0";
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_ALL_DETAILS_LOCAL + " WHERE " + KEY_UPDATE_TIME + " = '"+ updateTime + "'" + " LIMIT " + value + ", 1000";
Cursor cursor = db.rawQuery(selectQuery, null)
<强> 2。添加一些字段。
int value = 0;
String updateTime = "0";
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_ALL_DETAILS_LOCAL + " WHERE " + KEY_UPDATE_TIME + " = '"+ updateTime + "'" + " order by updateTime desc LIMIT " + value + ", 1000";
Cursor cursor = db.rawQuery(selectQuery, null