我如何排序行使用SQLite在Android与rawquery方法



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

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不是一个字符串:

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

您在rawQuery方法上使用了第二个参数,并期望将其用作订单子句。事实并非如此。第二个参数用于为SQL查询字符串中的?占位符提供值。使用以下代码应该可以达到目的:

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

最新更新