【问题标题】:Android SQLite: order by many columnsAndroid SQLite:按多列排序
【发布时间】:2015-02-18 10:09:13
【问题描述】:

TABLE_NAME(COL1、COL2、COL3、COL4);

     Cursor cur = db.query(TABLE_NAME, null, null, null, null, null, COL1);

这样我们得到按 COL1 值排序的条目。如果其中一些具有相同的 COL1 值,则 SQLite 使用与先前插入存储它们时相同的顺序。

是否可以定义多种程度的排序?例如,如果两个或多个条目具有相同的 COL1 值,则具有较小 COL2 值的条目将首先出现,依此类推。

Android 网站说我们只能指定一个字符串(列)进行排序。

query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)

如果我使用一个

 db.rawQuery("sql code") 

sql 代码的字符串将在运行时编译,因此程序会变慢。如果没有必要,我想避免这种情况。还有其他方法吗?

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    使用 String orderBy 你可以这样指定多个列:

    String order = COL1 + ", " +COL2 + ", " + COL3;
    Cursor cur = db.query(TABLE_NAME, null, null, null, null, null, order);
    

    【讨论】:

    • 谢谢!我认为必须使用 String[] 类型来指定更多列。
    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多