在我的数据库中有一些行,每行有三列(id,name,moves,time)。我想根据移动对行进行排序这是整数值。
我试过这样但不走运。
public Cursor fetchAllNotes() {
return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME,
KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES);
}
像这样使用
private void getallrows() {
// get all the contacts..
db.open();
Cursor c = db.fetchAllNotes();
if (c.moveToFirst()) {
do {
Sorting(c);
} while (c.moveToNext());
}
db.close();
}
移动我喜欢15,45,21,11,10,75,33 我想要这样10,11,15,21,33,45,75
答案 0 :(得分:5)
试试这个 -
return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME,
KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES + " ASC");
或
return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME,
KEY_MOVES,KEY_TIME}, null, null, null, null, KEY_MOVES + " DESC");
编辑 - 1:
如果要显示名称,可以这样使用,
private void getall()
{
db.open();
Cursor c = db.fetchAllNotes();
int i=1;
if (c.moveToFirst())
{
do
{
DisplayContact(c.getString(c.getColumnIndex(KEY_NAME)));
i++;
} while (c.moveToNext());
}
db.close();
}
答案 1 :(得分:2)
为什么不以这种方式进行查询以返回已排序的数据本身? 试试这个查询:
SELECT * 来自DATABASE_TABLE 按KEY_MOVES ASC排序
或
db.query(DATABASE_TABLE,new String [] {KEY_ROWID,KEY_NAME, KEY_MOVES,KEY_TIME},null,null,null,null,KEY_MOVES +“ASC”);
希望你明白......