25

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

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

4

3 回答 3

46

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");
于 2012-04-20T22:26:17.867 回答
1

这对我有用

SQLiteCursor cursor = (SQLiteCursor) db.query(DbHelper.TIMES, colmn, null, null, null, null, DbHelper.TABLE_DAY + " ASC, " + DbHelper.TABLE_LECTURE_NO + " ASC",null);
于 2017-02-04T03:34:47.750 回答
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”,这两个条件并行工作

于 2019-06-24T15:09:50.843 回答