2010-07-30 3 views
0

지정된 이름의 행만 리턴하고 주 (정수)로 내림차순으로 정렬하는 쿼리를 가져 오려고합니다.SQLITE 오류 발생으로 선택 및 순서

나는 시도하고 그것이 나에게 FC를 제공하고 로그 캣 말한다 실행 매번

ERROR/AndroidRuntime (728) : android.database.sqlite.SQLiteException : 그런 칼럼 : 새로운 : 컴파일하는 동안 이름을 선택, Notes에서 주, 총 WHERE 이름 WeekDESC의 LIMIT BY = 새 ORDER 10

public Cursor graphQuery(String name){ 
    return mDb.query(DATABASE_TABLE, new String[] {KEY_NAME, 
      KEY_WEEK, KEY_TOTAL}, KEY_NAME + "=" + name, null, null, null, KEY_WEEK + "DESC","10"); 
} 

그것은 그것이 행의 이름을보고하고 반환해야하기 때문에 이해가되지 않습니다 이러한 열이 없다는 것을 말한다 일치하는 것들. 또한 KEY_NAME + "="+ 이름을 null로두면 WeekDESC 같은 열이 없다는 것을 의미합니다.이 두 열은 정수로 정렬되어야하기 때문에 발생하지 않습니다.

이 코드는 이전에 작동 했었지만 잘못 놓았고 다시 작동하지 않는 것처럼 보일 수 있습니다 ... 이것은 실망 스러워요. 어떤 도움도 대단히 감사합니다! 당신이 문자열로 검색하는 경우

답변

0

, 당신은 자리 표시 자로 즉

return mDb.query(DATABASE_TABLE, new String[] {KEY_NAME, 
      KEY_WEEK, KEY_TOTAL}, KEY_NAME + "=?", new String[] { name }, null, null, null, KEY_WEEK + "DESC","10"); 

을 물음표를 사용해야합니다 아니면 이름에 공백이나 특수 문자가 포함 된 경우가 중단됩니다. (실제로 물음표를 쓰고 싶지 않은 경우 문자열을 큰 따옴표 나 큰 따옴표로 묶어야하지만 훨씬 더 우아하고 안전합니다.)

또한 다음과 같습니다. "DESC"와 정렬 할 키 사이의 공백 "DESC"를 사용하십시오.

+0

AWESOME! 그것은 작동합니다! 고마워요! 나는 당신이 "=?" – Cameron