我有一个带有两个参数的数据库,一个是名为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
如何更改该订单?
答案 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文档以了解有关查询方法的更多信息。