2015-11-03 45 views
0

我想从我的本地数据库中获取1000个数据的限制在我的android项目。因此,我写了这个查询,但我得到的语法错误:在日志在Android中的查询限制码

android.database.sqlite.SQLiteException: near "desc": syntax error (code 1): , while compiling: SELECT * FROM AllDetails WHERE updateTime = '0' desc LIMIT 0, 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 

错误我不知道这里是什么语法错误?

回答

0

在你的代码中,你正在使用desc,但没有指定要通过从查询中删除desc或在其中添加一些字段来排序的字段。

1.通过除去降序

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 
+0

感谢这工作! – SK2015

2

你需要在命令,如果你想使用id对它进行排序使用desc所以要规定一个column你可以写

SELECT * FROM AllDetails WHERE updateTime = '0' order by id desc LIMIT 0, 1000 

你将不得不使用order by子句来完成相同

+0

感谢这工作! – SK2015