为什么我的SQLite游标不按字母顺序返回? (机器人)

时间:2015-06-22 01:30:53

标签: android database sqlite

我一直在尝试使用db.query按名称的字母顺序返回我的表,并将其另存为List以填充微调器。

db.query成功返回所有列值,但在尝试排序时不会以任何顺序返回。

我要排序的列是COLUMN_COMPANY_NAME(“company_name”)属于表TABLE__NAME(“公司”)。 COLUMN_COMPANY_NAME被声明为:

public static final String TABLE_NAME = "companies";
public static final String COLUMN_ID = "company_id";
public static final String COLUMN_COMPANY_NAME = "company_name";
public static final String COLUMN_EMAIL = "company_email";
public static final String COLUMN_PHONE = "company_phone";

private static final String DATABASE_CREATE = "create table " + TABLE_NAME
+ "(" + COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_COMPANY_NAME + " varchar(45), "
+ COLUMN_EMAIL + " varchar(45), "
+ COLUMN_PHONE + " integer default 0"
+ ");";

private SQLiteDatabase db;

我想使用db.query(table,columns,selection,selectionArgs,groupBy,具有顺序)来获取游标中数据库中的所有列和行:

protected Cursor Cursor_getAllCompanies(){
    String orderBy = COLUMN_COMPANY_NAME + " Collate NOCASE";
    return db.query(TABLE_NAME, null, null, null, null, null, orderBy);
}//if columns = null, default get all columns

所以我希望rawQuery是:

SELECT * FROM companies ORDER BY company_name Collate NOCASE;

我尝试了许多不同的语法,但无济于事。据我所知,上面的语法应该根据公司名称以(升序)字母顺序返回我的所有列,但不是。

问题归结为:如何让db.query以字母顺序返回?为什么标准订单命令不起作用?

注意:之前已经回答了许多类似的问题,但目前他们的解决方案似乎都不适用于我:

  

SQLite Query, Nocase Alphabetical

     

How do I order my SQLite in descending order

     

SQLite query sorting

1 个答案:

答案 0 :(得分:0)

如果您尝试按字母顺序列出它 只需SELECT * FROM公司ORDER BY company_name