0

我的查询有问题

public ArrayList<String> getUniqueYears(String TABLE_NAME) {

      ArrayList<String> content = new ArrayList<String>();
      final String[] cat = new String[] {KEY_YEAR};

      Cursor cursor = myDatabase.query(true, TABLE_NAME, cat, null, null, null, null, KEY_YEAR, null);


              if (cursor.moveToFirst()) {
                 do {

                      content.add(cursor.getString(0));
                 } while(cursor.moveToNext());
            }

      cursor.close();
      return content;
}

当我调用该函数时,我会返回这个:

[111、1111、124、1242、1345、1943、2345、345]

谢谢

4

1 回答 1

2

它目前正在排序,KEY_YEAR就好像那些字符串:

  1. 111 在 1111 之前,因为1111111 相等,但第二个有一个额外的字符,因此 i 在“数值上大于”第一个。
  2. 1111 在 124 之前,因为1111 和124 相等,但是 1 111 “数值上低于” 1 24。其余的不用于对这对进行排序

某某某某……

你是怎么储存的KEY_YEAR?它应该是一个NUMBER

于 2013-02-01T15:15:17.563 回答