Здравствуйте. Нужно удалить записи в таблице, но чтобы осталось не меньше определенного кол-ва записей (к примеру, чтобы осталось не менее 500). На ум приходит рекурсивная функция, которая будет каждый раз считать кол-во строк в таблице, и если больше ограничительного числа - то делать удаление. А можно как-то сделать одним запросом? Спасибо.
$sql = mysql_query("SELECT `id` FROM `table` LIMIT 500, 1");
if(mysql_num_rows($sql)){
$res = mysql_fetch_assoc($sql);
mysql_query("DELETE FROM `table` WHERE `id` > ".$res['id']);
}
Неа, так не катит) В запросе для удаления есть ORDER BY, удалять просто по порядку не получится.
Myrow, чтобы катило, надо подробнее объяснять задачу, и уж совсем хорошо бы показать сам запрос и структуру таблицы.
_____________
Стимулятор ~yoomoney - 41001303250491
Michael
2.06.2013 - 19:11
в mysql у команды delete есть limit .
подробнееМожно же посчитать сначала кол-во, и соответственно лишние.
_____________
There never was a struggle in the soul of a good man that was not hard