마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 주소록 중복 제거 쿼리 질문입니다.

0 추천

안드로이드에서 주소록을 쿼리해서 가져오고 있는데요,

- Cursor cursor2 = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI....

같은 이름, 같은 번호가 여러개 저장되어있는 경우가 있어서, 번호 기준으로 같은 경우는 제거하고 가져오려고 합니다.

ContentResolver 는 Groupby 가 적용이 안된다는 말도 있어서 쨋든 DISTINCT 를 사용하려고 했는데요,

String[] column = { "DISTINCT "+ContactsContract.CommonDataKinds.Phone.NUMBER };

위처럼 projection 을 적용하면

java.lang.IllegalArgumentException: Invalid column DISTINCT (data1)
	at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
	at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
	at android.content.ContentProviderProxy.query(ContentProviderNative.java:413)
	at android.content.ContentResolver.query(ContentResolver.java:464)
	at android.content.ContentResolver.query(ContentResolver.java:407)

DB에서 못찾는다는 에러가 나는 것 같아요...

 

어느부분이 잘못된건지 잘 모르겠습니다...

* 혹시나해서 괄호 넣어봤는데도 안되네요;

String[] column = { "DISTINCT ("+ContactsContract.CommonDataKinds.Phone.NUMBER +")" };

익명사용자 님이 2014년 10월 24일 질문

1개의 답변

0 추천
쿼리 호출할 때 column 매개변수에는 컬럼명만 사용가능합니다.

DISTINCT 같은 구문을 넣을 수 없습니다.
익명사용자 님이 2014년 10월 24일 답변
...