【问题标题】:android sql - how do you order your sql query by multiple columnsandroid sql - 你如何按多列排序你的 sql 查询
【发布时间】:2012-04-20 22:03:04
【问题描述】:

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

请告诉我你的想法。提前谢谢!

【问题讨论】:

  • KEY_DAY_ID + ", " + KEY_START_TIME (ASC 是默认的) - 应该先按 day_id 排序,然后按 start_time 排序

标签: android


【解决方案1】:

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");

【讨论】:

  • 那么排序时哪一个优先级更高?
  • @AllenZeng 第一个。
【解决方案2】:

这对我有用

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

【讨论】:

    【解决方案3】:

    您也可以像这样在选择行中执行此操作:

    Cursor data = ddbb.rawQuery("SELECT * FROM vacations ORDER BY NAME ,MONTH , date ",null);
    
    

    在前面的代码中,第一列“NAME”的第一个概率将按第二个概率“MONTH”然后第三个“日期”开始排列..... 这意味着串联工作
    或者:

    Cursor data = ddbb.rawQuery("select * from vacations where NAME = ? ORDER BY MONTH AND date ",new String[]{ns});
    
    

    在前面的代码中,通过使用“AND”,这两个条件并行工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多