数据库排序取决于整数?

时间:2011-09-28 05:13:03

标签: android sqlite sorting

在我的数据库中有一些行,每行有三列(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

2 个答案:

答案 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”);

希望你明白......