查询具有某一分组的所有联系人的ContactsContract.RawContacts._ID,代码如下 public static final String[] RAW_PROJECTION = new String[]{
ContactsContract.Data.RAW_CONTACT_ID,
};
public static final String RAW_CONTACTS_WHERE =
ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID +"=?" +" and " +
ContactsContract.Data.MIMETYPE+ "=" + "'" +
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'" ; Cursor mMemberRawIds =rc.query(URI, RAW_PROJECTION,
RAW_CONTACTS_WHERE,
new String[]{""+groupId},
"data1 asc");
是否有高手解释一下红色标注的部分的意思?我查找Sql的语法规则,好像没有找到SQL语句这种用的啊?多谢啦
ContactsContract.Data.RAW_CONTACT_ID,
};
public static final String RAW_CONTACTS_WHERE =
ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID +"=?" +" and " +
ContactsContract.Data.MIMETYPE+ "=" + "'" +
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'" ; Cursor mMemberRawIds =rc.query(URI, RAW_PROJECTION,
RAW_CONTACTS_WHERE,
new String[]{""+groupId},
"data1 asc");
是否有高手解释一下红色标注的部分的意思?我查找Sql的语法规则,好像没有找到SQL语句这种用的啊?多谢啦
你这个条件只有一个groupId,所以不需要这么写,直接ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID=groupId就可以了,写Query的时候,new String那里填null
如果是用模糊检索,包含一部分Id的话,就需要用的检索范围
比如:Cursor mMemberRawIds =rc.query(URI, RAW_PROJECTION,
RAW_CONTACTS_WHERE,
new String[]{"*"+groupId+"*"},
"data1 asc");
把RAW_CONTACTS_WHERE变量中的"=?"改为"="+groupId;
查询语句改为:
Cursor mMemberRawIds =rc.query(URI, RAW_PROJECTION,
RAW_CONTACTS_WHERE,
null,
"data1 asc");