Как отсортировать строки с помощью SQLite в Android с помощью метода rawquery? - PullRequest
2 голосов
/ 14 ноября 2011

Я использую следующий метод для получения данных из таблицы:

Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
  + KEY_SPONSOR + " AS result FROM " + DATABASE_TABLE, null);

Мне было интересно, можно ли это отредактировать в отсортировать результаты по KEY_SWIMMERLAPS . Я думал, что будет работать следующее:

Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
  + KEY_SPONSOR + " AS result FROM " + DATABASE_TABLE, KEY_SWIMMERLAPS + " DESC");

Однако я получаю сообщение об ошибке, поскольку KEY_SWIMMERLAPS не является строкой:

Метод rawQuery (String, String []) в типе SQLiteDatabase не применим для аргументов (String, String)

1 Ответ

18 голосов
/ 14 ноября 2011

Вы использовали второй аргумент в методе rawQuery и ожидали, что его будут использовать в качестве предложения заказа.Это не относится к делу.Второй аргумент используется для предоставления значений для ? заполнителей в строке запроса SQL.Использование следующего должно сделать трюк:

Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
            + KEY_SPONSOR + " AS result FROM " + DATABASE_TABLE + " ORDER BY "+ KEY_SWIMMERLAPS+" DESC", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...