2012-05-23 3 views
0

해당 달의 특정 날짜에 대한 항목을 만들 수있는 SQLite 데이터베이스를 만들고 있습니다. 나는 오늘의 기둥을 만들었습니다. 엔트리는 무작위 순서로 나오므로 정렬하고 싶습니다. 하지만 orderBy를 사용하면 첫 번째 숫자로만 숫자를 정렬합니다. 예 : 입력 순서는 (2,31,5,21,16,9,7)입니다. 나는 그것을 정렬 할 때 (16,2,21,31,5,7,9) 순서를 얻을. 이 문제를 해결할 수있는 방법이 있습니까?Android : orderBy 첫 번째 숫자 만 사용

난 당신이 테이블의 정의를 표시하지 않습니다 데이터

 public ArrayList<String> getDays(){ 
     String[] columns = new String[]{MONTH, DAY, START_HOUR, START_MIN, STOP_HOUR, STOP_MIN}; 
     Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, DAY); 
     c.moveToLast(); 
     ArrayList<String> navne = new ArrayList<String>(); 
     for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
      Log.d("Entry", c.getString(1)); 
      navne.add(c.getString(1)+": "+c.getString(2)+":"+c.getString(3)+" - "+c.getString(4)+":"+c.getString(5)); 
     } 
     return navne; 


      public void onCreate(SQLiteDatabase db) { 
      // TODO Auto-generated method stub 
      db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
        ROW_ID + " TEXT NOT NULL, " + 
        MONTH + " TEXT NOT NULL, " + 
        DAY + " TEXT NOT NULL, " + 
        START_HOUR + " TEXT NOT NULL, " + 
        START_MIN+ " TEXT NOT NULL, " + 
        STOP_HOUR + " TEXT NOT NULL, " + 
        STOP_MIN + " TEXT NOT NULL);" 
        ); 

     } 

답변

0

알파벳 순서입니다. 시도 :

ORDER BY ABS(column_name) ASC 
+0

작업 중! 감사! – gedemagt

0

를 정렬 내 항목 코드

 public void createEntry(int id, int month, int day, int start_hour, int start_min, int stop_hour, int stop_min) 
     { 
     ContentValues cv = new ContentValues(); 
     ourDatabase.beginTransaction(); 
     cv.put(ROW_ID, id); 
     cv.put(MONTH,month); 
     cv.put(DAY,day); 
     cv.put(START_HOUR,start_hour); 
     cv.put(START_MIN,start_min); 
     cv.put(STOP_HOUR,stop_hour); 
     cv.put(STOP_MIN,stop_min); 
     ourDatabase.insert(DATABASE_TABLE, null, cv); 
     ourDatabase.setTransactionSuccessful(); 
     ourDatabase.endTransaction(); 
    } 

그리고 내 코드입니다. DAY 열이 숫자 또는 문자열입니까? 문자열 인 경우이 동작이 표시됩니다.

+0

문자열 인 것 같습니다. 나는 그것을 바꾸는 방법을 모른다. createTable을 게시했습니다. – gedemagt

0

필드를 TEXT와 같이 선언하면 ORDER BY 절이 필드가 String 인 것처럼 작동합니다. 숫자 순서를 원하면 INTEGER 또는 LONG처럼 선언해야합니다.

관련 문제