Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.06.2013, 21:35
fduch вне форума Посмотреть профиль Отправить личное сообщение для fduch Найти все сообщения от fduch
  № 1  
Ответить с цитированием
fduch

Регистрация: Jun 2012
Сообщений: 142
По умолчанию Удаление последних N записей из Mysql

PHP код:
$kolvo_mess=0;
$eres mysql_query("SELECT * FROM `message` where id=11 ORDER BY time DESC");
while(
$row mysql_fetch_array($eres))
{
$tim $row['time']; //CURRENT_TIMESTAMP
$kolvo_mess++;
if (
$kolvo_mess 200){   mysql_query ("DELETE FROM message WHERE id = 11 and time = $tim");}


Нужно оставить последние 200 записей, поле тайм, заполняется автоматом,
Но команда делит в таком виде почемуто не работает. Если оставить только условие id=11, то все поля
успешно стираются) если оставить только условие time = $tim, не работает.
echo $row['time']; и echo $tim; выдают одно и тоже.

Старый 18.06.2013, 22:39
Korchy вне форума Посмотреть профиль Отправить личное сообщение для Korchy Найти все сообщения от Korchy
  № 2  
Ответить с цитированием
Korchy
 
Аватар для Korchy

Регистрация: May 2011
Сообщений: 301
Записей в блоге: 2
Код AS1/AS2:
delete from message where id=11 and time in (select * from (SELECT time FROM message WHERE id=11 order by time desc limit 200) as tbl);
__________________
interplanety

Старый 19.06.2013, 17:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Тут еще есть смысл подумать: что будет выгоднее, удалить Х записей, оставив У записей, или скопировать У записей в новую таблицу, trunkate/drop старую, и потом переименовать / скопировать таблицу, куда копировали У записей.
Например, если нужно оставить 200 записей из 200000, то я так думаю, что второй вариант будет очень сильно быстрее
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:51.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.