通过参数对SQLite数据库进行排序

时间:2014-07-07 18:56:59

标签: android database sqlite

我有一个带有两个参数的数据库,一个是名为app_name的字符串,另一个是应用程序打开次数的整数。 运行代码后

 String[] columns = new String[]{KEY_ROWID,KEY_NAME,KEY_OPENED};
    Cursor c = database.query(DATABASE_TABLE,columns,null,null,null,null,null);
    String result = "";
    int iRow = c.getColumnIndex(KEY_ROWID);
    int iAppName = c.getColumnIndex(KEY_NAME);
    int iTimesOpened = c.getColumnIndex(KEY_OPENED);
    for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
        result = result+c.getString(iRow)+" "+c.getString(iAppName)+" //"+c.getString(iTimesOpened)+"\n";
    }
    return result;

结果等于:

1拨号1

2 whatsapp 7

3 facebook 20

4 google play store 10

我希望结果按打开的时间排序,因此它看起来像这样

1 facebook 20

2 google play store 10

3 whatsapp 7

4拨号1

如何更改该订单?

2 个答案:

答案 0 :(得分:1)

Cursor c = database.query(DATABASE_TABLE,columns,null,null,null,null, KEY_OPENED);

要查询的最后一个参数是ORDER BY。

如果您想按KEY_OPENED列的整数值排序,可以使用CAST运算符将字段的值强制转换为整数。

Cursor c = database.query(DATABASE_TABLE,columns,null,null,null,null, "CAST( " + KEY_OPENED + " AS INTEGER)");

答案 1 :(得分:0)

使用此

 Cursor c = scoreDb.query(DATABASE_TABLE, rank, null, null, null, null, yourColumn+" DESC");

请参阅this文档以了解有关查询方法的更多信息。