Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос на удаление
 
 автор: BAHO   (19.07.2006 в 12:58)   письмо автору
 
 

вообщем пытался составить запрос или целый ряд действия, чтобы выполнить правильный запрос, но ничего не вышло...

Вообшем, нужно составить запрос на удаление записей из таблицы в БД, но так, чтобы в нём остались последние 60 записей.
При чём id могут быть разные, необязательно идущие в чётком порядке.
пробовал так:

<?
//вычисляю макс.значение id в таблице
$max=mysql_query("select max(id) from messages");
//удаляю записи, сей id меньше более чем на 60 максимального значения
mysql_query("delete from messages where id<($max-60)");
?>

этот способ плох тем, что записи то удалаяются, но этот способ не работает тогда, когда id идут не в чётком порядке, т.е. могут быть пробелы (пример: 1,2,3,5,9,15)
и пробовал вот так:

<?
//вычисляю минимальное значение id, но так, чтобы оно было минимальным среди последних 60 записей
$min=mysql_query("select min(id) from messages order by id desc limit 60");
#запрос не обрабатывается как хотелось бы, т.е. возвращается результат всё равно
#минимальный для ВСЕХ записей в таблице, так что дальнейший код не имеет смысла
?>


вот так вот, и не получается....

   
 
 автор: Trianon   (19.07.2006 в 13:05)   письмо автору
 
   для: BAHO   (19.07.2006 в 12:58)
 

Получите сперва граничный id
SELECT id FROM messages ORDER BY id DESC LIMIT 60 , 1
а потом уже удалите все записи id которых меньше граничного.

   
 
 автор: BAHO   (19.07.2006 в 18:46)   письмо автору
 
   для: Trianon   (19.07.2006 в 13:05)
 

да, а если sql-запрос ничего не возвращает... в итоге функция mysql_result выдаёт ошибку... могу конечно собачку перед переменной поставить, но как другим способом?

   
 
 автор: Trianon   (19.07.2006 в 18:49)   письмо автору
 
   для: BAHO   (19.07.2006 в 18:46)
 

если запрос не вернул ни одной строки, значит столько строк просто нет. Значит и удалять ничего не надо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования