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. 1111 の前の 111 は、1111111 が等しいためですが、2 番目の文字には余分な文字があるため、i は最初の文字よりも「数値的に大きく」なっています。
  2. 1111 は 124 の前にあるため、1111 と124 は等しいが、1 111 は 1 4 よりも「数値的に小さい」ためです2。残りは、このペアの並べ替えには使用されません。

などなど……。

保管方法はKEY_YEAR?それはあるべきですNUMBER

于 2013-02-01T15:15:17.563 に答える