android sql - 你如何通过多列来订购你的SQL查询

时间:2012-04-20 22:03:04

标签: android

我目前正在使用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");

请让我知道你的想法。提前谢谢!

3 个答案:

答案 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”将两个条件并行工作