我无法想象为什么我的分数没有下降。这是仅排序的第一个数字。帮我们分析一下这段代码并告诉我什么是错的答案。
public String getData() {
Cursor c= ourDatabase.query(DATABASE_TABLE, new String[] {KEY_NAME, KEY_SCORE},
null, null, null, null, KEY_SCORE +" DESC");
String result = "";
int iname = c.getColumnIndex(KEY_NAME);
int iscore = c.getColumnIndex(KEY_SCORE);
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + c.getString(iname) + " "+ c.getInt(iscore)+ "\n";
}
return result;
}
答案 0 :(得分:1)
问题可能是KEY_SCORE
被存储为字符串而不是数字。
解决这个问题的方法不止一种。将得分转换为整数或浮点数:
cast(Key_Score as float) desc
或者,如果它是一个没有前导0的整数,则以下技巧有效:
len(Key_Score) desc, key_score desc
但是,在某些数据库中,len()
函数可能拼写为length()
或其他内容。