2016-08-22 5 views
1

Я работаю над приложением для Android-приложений для обмена сообщениями, все данные сохраняются в базе данных sqlite. Есть 3 действия, но сообщение о том, что три действия сохраняются в одной таблице my_chat. Теперь я хочу удалить данные из конкретного чата проекта &.Как удалить данные из базы данных с условиями?

Пример: я хочу удалить данные первого проекта, где type - first_module, но последние вставленные данные в таблице - тип third_module.

Вот мой запрос

"DELETE FROM my_chat WHERE project_id ='" + project_id + "' AND module_text ='" + module_type + "' AND id in (select id from my_chat order by id desc limit 2)" 

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

+0

Вы должны использовать ИНЕКЕ внутри внутреннего запроса SELECT, так что module_text = «„+ module_type +“» – sJy

+0

Я уже использую предел 2 –

ответ

3

Использование ИНЕКЕ внутри внутренней SELECT.

"DELETE FROM my_chat WHERE project_id ='" + project_id + "' AND module_text ='" + module_type + "' AND id in (select id from my_chat WHERE module_text ='" + module_type + "' order by id desc limit 2)" 
+0

Спасибо это работает :) –

0

Удалить order by id desc limit 2

DELETE FROM my_chat WHERE project_id ='" + project_id + "' AND module_text ='" + module_type + "' AND id in (select id from my_chat order) 
Смежные вопросы