2012-07-04 2 views
0

나는 안드로이드 전화 연락처 sqlite 데이터베이스에서 행을 가져올이 선택 쿼리가 있습니다. select = +12244004242안드로이드 SQL 쿼리

나는 REQD 데이터를 가져올 수 성공적으로 수 있어요

String selection = ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" 
      + " AND "+ContactsContract.Data.DATA10+ " = '" + select + "'"; 

Log.d(LOG_TAG,"selection in update data"+selection); 

c = mContext.getContentResolver().query(CONTENT_URI, Projection,selection, null, null); 

. 그러나 하나 이상의 문자열이 있다면 내 요구 사항입니다. 즉 strings.how의 배열을 사용하여 쿼리를 작성합니까? select = +12244004242,+12244004245,+12244004248

그러나 내가 어떤 values.please 나를 선택 쿼리를 작성하는 데 도움 받고 있지 않다 곳

나는

String selection = ContactsContract.Data.DATA10 IN ("+select+")"; 

로 트링했다.

+0

은 선택하려는 ID입니까? Id 필드 이름은 무엇입니까? – Doomsknight

답변

1

시도를 ','= 선택과

'12244004242'을 ("+ + 선택") + 12244004245 ','+ 12,244,004,248 ' "

+0

나는 그것을 시도했다. 나는 원래의 문제 문장으로 썼다. 그러나 cursor.getcount()는 0이었다. – scooby

+1

숫자에 작은 따옴표를 추가했다. 아마도 그것은 당신이 놓친 것입니다. –

0

당신은 중첩을하거나 할 수 있도록

:에서 사용

select = +12244004242 OR select=+12244004245 OR select=+12244004248 
+0

아니, 실제로 나는 예제를 제공하고있다. 내 코드에서 String.i.e에있는 요소의 수를 알지 못합니다. String select.Can에서 숫자의 수를 알지 못합니다. IN 절을 사용할 수 있습니까 ?? – scooby

+0

글쎄, 당신은 목록을 반복하고 OR 구문으로 채울 수 있습니다. 또는 SQL을 이와 같이 작성하는 것보다 더 효율적인 접근 방법을 찾을 수 있습니다. cursor.query 메소드를 사용하고 "?" 기호를 사용하고 selectionArgs 매개 변수에서이를 사용하여 필드를 채 웁니까? –

0

이 내가 내 SQLite 데이터베이스에서 데이터를 추출에 대한 가서 어떻게, 트랜잭션 쿼리를 사용하여 시도해 볼 수도 있습니다, 뭔가 같은 :

db = window.openDatabase("DBID", "1.0", "DBName", 50000000); 
db.transaction(TableName, errorCB, successCB); 
tx.executeSql('SELECT Col1, Col2 FROM TableName WHERE Col1="'+ test +'";', [], querySuccess, errorCB); 

function querySuccess(tx, result) 
{ 
    // DO SOMETHING HERE 
} 

function errorCB(tx, err) { 
    alert("Error processing SQL: "+err.message); 
}