Android中的查询中的描述限制

时间:2015-11-03 04:24:16

标签: android mysql

我试图在我的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

我不确定这里的语法错误是什么?

2 个答案:

答案 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