Вот такая ситуация: БД регулярно поплняется новыми записями, но мне нужны только последние 20 с параметром (ORDER BY `date` DESC LIMIT 20).
Как мне стирать все остальные записи непопадающие под этот запрос?
П.С. Точного количества всех записей я не знаю.
Спустя 12 минут, 50 секунд (21.05.2011 - 12:34) sharki написал(а):
Как то так
DELETE FROM `table` AS t1
WHERE NOT IN (SELECT `id` FROM `table`AS t2 ORDER BY `date` DESC LIMIT 20)
Спустя 6 минут, 3 секунды (21.05.2011 - 12:40) T1grOK написал(а):
такой запрос работать не будет
Спустя 4 минуты, 50 секунд (21.05.2011 - 12:45) T1grOK написал(а):
Делаешь сначала выборку последних 20 записей, айдишников в частности. А потом подставляешь в запрос удаления:
DELETE FROM `table` WHERE id NOT IN (id1, id2)
Спустя 39 секунд (21.05.2011 - 12:45) sharki написал(а):
Я подсказал идею
надо допиливать, или ты про какую то иную часть кода?
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 3 часа, 35 минут, 59 секунд (21.05.2011 - 16:21) gidrosoldat написал(а):
Спасибо за идею! Буду додумывать, хотелось бы конечно одним запросом все это дело решитью