2012-04-20 111 views
20

我目前正在使用Eclipse的Android项目,并且遇到了我的SQL查询问题。android sql - 你如何为多个列排序你的sql查询

我想订购超过两列的查询,目前我的KEY_DAY_ID这样做,但我想也KEY_START_TIME做到这一点,但我不能让它的工作

我的查询目前看起来像这样:

Cursor cursor = db.query(TABLE_SESSION, new String[] {KEY_ID, KEY_MODULE_CODE, 
      KEY_DAY_OF_WEEK, KEY_START_TIME, KEY_DURATION, KEY_SESSION_TYPE, KEY_ROOM}, 
      null, null, null, null, KEY_DAY_ID + " ASC"); 

请让我知道您的想法。先谢谢你!

+0

'KEY_DAY_ID + “” + KEY_START_TIME'(ASC是默认值) - 应day_id先 – zapl 2012-04-20 22:20:08

回答

39

db.query()方法中的最后一个参数是order by子句(不含“order by”)。所有你需要做的是用“,”分隔两列。因此,它看起来像:

Cursor cursor = db.query(TABLE_SESSION, new String[] {KEY_ID, KEY_MODULE_CODE, 
     KEY_DAY_OF_WEEK, KEY_START_TIME, KEY_DURATION, KEY_SESSION_TYPE, KEY_ROOM}, 
     null, null, null, null, KEY_DAY_ID + " ASC, " + KEY_START_TIME + " ASC"); 
+0

感谢排序START_TIME我需要这封信“ASC”, – 2012-11-09 09:55:57

+1

那么哪一个在排序过程中具有更高的优先级? – 2016-10-04 23:44:24

+3

@AllenZeng第一个。 – 2016-10-16 18:37:50

1

这对我的作品

SQLiteCursor cursor = (SQLiteCursor) db.query(DbHelper.TIMES, colmn, null, null, null, null, DbHelper.TABLE_DAY + " ASC, " + DbHelper.TABLE_LECTURE_NO + " ASC",null);