Преобразование команды SQLite в соответствующий запрос contentResolver

У меня есть этот SQL-запрос, и, поскольку я хочу использовать content://sms/inbox, я не могу передать его с помощью rawQuery, и мне придется использовать contentResolver. И я понятия не имею, как это сделать.

Он должен возвращать самые последние SMS, полученные для каждого номера.

Вот SQL, если вы можете помочь мне с этим:/

SELECT adress, id, date /*Columns from the SMS contentResolver*/
FROM sms_databse /*Uri.parse("content://sms/inbox"); ????*/
WHERE (
SELECT COUNT(*) AS "s"
FROM sms_databse /*Uri.parse("content://sms/inbox"); ????*/
WHERE s.adress = sms_database.adress
AND s.date <= sms_database.date
)
<=1

person Papyrusko    schedule 13.10.2015    source источник


Ответы (1)


Интерфейс преобразователя содержимого не допускает произвольных запросов (как разрешено rawQuery()), но смоделирован на основе более простой функции query().

Простой интерфейс позволяет реализации преобразователя содержимого проверять, не пытается ли клиент получить доступ к запрещенным данным; это было бы невозможно, если бы был разрешен произвольный SQL.

Если вы хотите выполнить сложную обработку данных, вы должны получить все данные и сделать это самостоятельно.

person CL.    schedule 13.10.2015
comment
Таким образом, нет возможности иметь подзапрос при использовании query ()? В таком случае, как мне поступить? - person Papyrusko; 13.10.2015