使用Distnict与getContentREsolver android Sqlite

时间:2015-09-20 12:29:56

标签: android sqlite

我正在Android中创建一个消息传递应用程序,我想只从唯一的联系人号码中获取短信。

我尝试了以下代码,但它无效。

String[] projection = new String[] { "_id","DISTINCT "+ContactsContract.PhoneLookup.NUMBER, "person", "body", "date", "type" };
Cursor cursor = getContentResolver().query(uri, projection,null, null, null);

这里抛出错误。

Caused by: android.database.sqlite.SQLiteException: near "DISTINCT": syntax error: , while compiling: SELECT _id, DISTINCT number, person, body, date, type FROM sms ORDER BY date DESC

有人可以为我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您需要更改查询。 DISTINCT关键字仅适用于所有行。您需要的是查询中的“分组依据”部分。

您可以将查询更改为:

String[] projection = new String[] { "_id", ContactsContract.PhoneLookup.NUMBER, "person", "body", "date", "type" };
String selection = GROUP BY " + ContactsContract.PhoneLookup.NUMBER;
Cursor cursor = getContentResolver().query(uri, projection, selection, null, null);

我还没有测试过,所以可能会出现语法错误。