Android: ORDER BY в запросе

У меня есть приложение для Android, использующее локальную базу данных sqlite.

private SQLiteDatabase mDb; 

Когда я запускаю этот запрос, я получаю свой курсор по строкам с pid, равным id, по желанию:

 mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, KEY_PID+" = "+id, null, null, null, null, null); 

Когда я запускаю следующий запрос, стремясь получить тот же набор результатов, упорядоченный pid, я получаю « android.database.sqlite.SQLiteException: несоответствие типов данных »

 mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, KEY_PID+" = "+id, null, null, null, null, KEY_PID+" DESC"); 

Есть идеи?

Solutions Collecting From Web of "Android: ORDER BY в запросе"

Похоже, ты немного перепутался. Согласно документации SQLiteDatabase.query , последним аргументом является предложение LIMIT . Второе – это предложение ORDER BY .

 Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, // <-- ORDER BY String limit) 

РЕДАКТИРОВАТЬ

Но есть еще один SQLiteDatabase.query где ORDER BY будет последним

 Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) 

Это сработало для меня

 String filter = MySQLiteHelper.JOB_ID + "=" + Integer.toString(jobID); String orderBy = MySQLiteHelper.LOG_TIME + " DESC"; Cursor cursor = database.query(MySQLiteHelper.LOG_TABLE_NAME, logTableColumns, filter, null, null, null, orderBy); 
 KEY_PID + " = " + "'" + id + "'" 

Поскольку Orderby является вторым последним параметром в запросе; Ваш запрос будет таким

 mDb.query(true, PT_TABLE, new String[] {KEY_PID, KEY_TID}, KEY_PID+" = "+id, null, null, null, KEY_PID+" DESC", null); 

Если я правильно понял вашу проблему, попробуйте это.

  String[] columns = new String[] {KEY_PID, KEY_TID}; String where = KEY_PID + " = " + Integer.toString(id); String orderBy = KEY_PID + " DESC"; Cursor cursor = mDb.query(PT_TABLE, columns, where, null, null, null, orderBy);