我正在尝试从
例如,如果联系人有2个电子邮件,则只会得到关于此联系人的一行。
基本上,它应该像这样进行:
所以这是我的查询:
ContactsContract.CommonDataKinds.Email.CONTENT_URI
表中获取所有Contacts
,并使用CursorLoader
按它们的ContactID
和Name
进行分组。例如,如果联系人有2个电子邮件,则只会得到关于此联系人的一行。
基本上,它应该像这样进行:
SELECT ContactID, Name
FROM Table
GROUP BY ContactID, Name
我的代码:
String filter = ContactsContract.CommonDataKinds.Email.DATA + " NOT LIKE ''))
GROUP BY ((" + ContactsContract.CommonDataKinds.Email.CONTACT_ID + ", display_name";
final static String[] PROJECTION =
{
Utils.hasHoneycomb() ? Contacts.DISPLAY_NAME_PRIMARY : Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Email.CONTACT_ID,
};
return new CursorLoader(getActivity(),
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
ContactsQuery.PROJECTION,
filter,
null,
ContactsQuery.SORT_ORDER);
我遇到了下一个SQLite错误:
"Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT DISTINCT display_name, contact_id FROM view_data_restricted data WHERE (1 AND mimetype_id = 1) AND ((data1 NOT LIKE '')) GROUP BY ((contact_id, display_name)) ORDER BY sort_key"
所以这是我的查询:
SELECT DISTINCT display_name, contact_id FROM view_data_restricted data
WHERE (1 AND mimetype_id = 1) AND ((data1 NOT LIKE ''))
GROUP BY ((contact_id, display_name)) ORDER BY sort_key
- 为什么cursorLoader添加了"DISTINCT",是为什么?
- 我知道有多个
"(" / ")"
符号,这是我处理"GROUP_BY"的最佳方法。请问还有其他的想法可以帮忙吗? - 我无法在
","
附近找到问题,如错误所述。