如何使用rawquery方法在Android中使用SQLite对行进行排序?

She*_*don 2 java sqlite android

我正在使用以下方法从表中获取数据:

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

我想知道是否可以编辑它以通过KEY_SWIMMERLAPS对结果进行排序.我认为以下内容可行:

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

但是,我收到一个错误,因为KEY_SWIMMERLAPS不是一个字符串:

SQLiteDatabase类型中的方法rawQuery(String,String [])不适用于参数(String,String)

Pie*_*rre 18

您在rawQuery方法上使用了第二个参数,并期望将其用作order子句.事实并非如此.第二个参数用于为?SQL查询字符串中的占位符提供值.使用以下应该可以做到这一点:

Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
            + KEY_SPONSOR + " AS result FROM " + DATABASE_TABLE + " ORDER BY "+ KEY_SWIMMERLAPS+" DESC", null);
Run Code Online (Sandbox Code Playgroud)