Android SQLite:按多列排序
Android SQLite: order by many columns
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串代码会在运行时编译,所以程序会比较慢。如果没有必要,我想避免这种情况。还有其他方法吗?
使用 String orderBy,您可以指定多个列,如下所示:
String order = COL1 + ", " +COL2 + ", " + COL3;
Cursor cur = db.query(TABLE_NAME, null, null, null, null, null, order);
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串代码会在运行时编译,所以程序会比较慢。如果没有必要,我想避免这种情况。还有其他方法吗?
使用 String orderBy,您可以指定多个列,如下所示:
String order = COL1 + ", " +COL2 + ", " + COL3;
Cursor cur = db.query(TABLE_NAME, null, null, null, null, null, order);