2010-07-17 4 views
11

KEY_HOMEID가 journalId 인 사용자로 결과를 제한하고 싶습니다. 나는 몇 일 동안이 일을 도와주었습니다.WHERE 절을 쿼리에 추가하는 방법

mDb.query(DATABASE_TABLE, // Table name 
      columnNames, // String[] containing your column names 
      KEY_HOMEID+" = "+jounalId, // your where statement, you do not include the WHERE or the FROM DATABASE_TABLE parts of the query, 
      null, 
      null, 
      null, 
      null 
     ); 

당신은 또한 사용할 수 있습니다 더 편안 쓰기 SQL 쿼리를 느끼는 경우 : return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_HEIGHT, KEY_BODY, KEY_HOMEID},"FROM DATABASE_TABLE WHERE KEY_HOMEID = journalId",null, null, null, null,null); }

답변

24

public Cursor fetchAllNotes(String journalId) { 당신의 쿼리가 조금 다음과 같아야합니다 http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#query

에서보세요

mDb.rawQuery("SQL STATEMENT", null); 
+0

감사합니다. 공장. 나는 SQL 구문이 rawQUery에서만 사용될 수 있다는 것을 깨닫지 못했다. – Brian

+0

이전 답변 (거의 동일)에 대한 답변도 참조하십시오. http://stackoverflow.com/questions/3269863/sqlite-and-android-how-do-i-use-string-having-in-my -query/3271769 # 3271769 –

+1

가능한 경우 'rawQuery'를 피하십시오 – user2070775

2

나는 나의 문제에 대한 해답을 찾고 있었다.

Integer 대신 String을 사용하려고했습니다. 내 솔루션은 그런 식으로했습니다 : 정수 대신 '문자열'. 여기

는 결국 나를 위해 일한 코드입니다 : 당신이 그것을 사용합니다 경우

return db.query(TABLE_NAME_REMINDER, PROJECTION, REMINDER_REMINDER_TYPE+" = '"+rem_type+"'", null, null, null, null); 
6

그것은 당신의 코드가 더 명확하게 어디에 (쿼리 매개 변수) 인수 예 :

 String [] settingsProjection = { 
       DBContract.Settings._ID, 
       DBContract.Settings.COLUMN_NAME_USER_ID, 
       DBContract.Settings.COLUMN_NAME_AUTO_LOGIN 
     }; 

     String whereClause = DBContract.Settings.COLUMN_NAME_USER_ID+"=?"; 
     String [] whereArgs = {userId.toString()}; 

     Cursor c = db.query(
       DBContract.Settings.TABLE_NAME, 
       settingsProjection, 
       whereClause, 
       whereArgs, 
       null, 
       null, 
       null 
     ); 
+0

대신에'Integer.toString (userId)'를 사용하여'userId.toString()'을 사용할 수 없습니다. –

관련 문제