我目前正在使用Eclipse中的Android项目,我的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 :(得分:40)
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");
答案 1 :(得分:1)
这对我有用
SQLiteCursor cursor = (SQLiteCursor) db.query(DbHelper.TIMES, colmn, null, null, null, null, DbHelper.TABLE_DAY + " ASC, " + DbHelper.TABLE_LECTURE_NO + " ASC",null);
答案 2 :(得分:0)
您也可以在选择行中执行以下操作:
Cursor data = ddbb.rawQuery("SELECT * FROM vacations ORDER BY NAME ,MONTH , date ",null);
在先前的代码中,第一列“ NAME”的第一个概率然后将以第二个概率“ MONTH”然后第三个“ date”开始排列.....
意思是串联工作
或者:
Cursor data = ddbb.rawQuery("select * from vacations where NAME = ? ORDER BY MONTH AND date ",new String[]{ns});
在先前的代码中,使用“ AND”将两个条件并行工作