Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 4
mdova Сообщение 17/03/2012 08:57 Копия темы
Как удалить старые данные из MySQL допустим раз в 3 месяца? эти стили слишком расширяли блоги и они ломались, поэтому пока закомментил-->
Приветствую. Есть база данных, часто наполнение и размер будет расти стремительно... Поэтому надо подумать о её очистке, от старых объявлений заранее. Не обязательно автоматически, можно и в ручную, запросом например.. Только вот каким?:) Я думаю скорее всего по дате можно определить старое объявление, и удалить допустим те которым более 3-х месяцев. Нужен только волшебный запрос... Пока нарыл только это – mysql_query ("DELETE FROM имя_таблицы WHERE UNIX_TIMESTAMP() –    UNIX_TIMESTAMP(date) > 900"); время в секундах. так мы удалим записи которые были записаны раньше чем какое-то время назад. 

Не совсем то что надо, может получится сделать как я объяснил... Заранее спасибо всем за советы и участие! 

Вот структура и содержимое таблички Adverts, для наглядности:

--
-- Структура таблицы `adverts`
--

CREATE TABLE IF NOT EXISTS `adverts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id_category` smallint(3) unsigned NOT NULL,
  `title` tinytext,
  `text` text NOT NULL,
  `date` int(10) unsigned NOT NULL,
  `price` int(10) unsigned DEFAULT NULL,
  `curency` char(3) DEFAULT NULL,
  `id_city` smallint(4) unsigned NOT NULL,
  `id_user` smallint(6) unsigned NOT NULL,
  `check` tinyint(1) unsigned DEFAULT NULL,
  `on_off` tinyint(1) unsigned DEFAULT NULL,
  `vip` tinyint(1) unsigned DEFAULT NULL,
  `color` tinyint(1) unsigned DEFAULT NULL,
  `look` int(11) unsigned NOT NULL,
  `data_click` int(11) unsigned DEFAULT NULL,
  `video` text,
  `left` tinyint(3) unsigned NOT NULL,
  `right` tinyint(3) unsigned NOT NULL,
  `vip_date` int(10) unsigned DEFAULT NULL,
  `foto` int(11) unsigned NOT NULL,
  `parse` tinyint(1) unsigned DEFAULT NULL,
  `old_num` int(11) unsigned DEFAULT NULL,
  `upkol` tinyint(1) unsigned DEFAULT NULL,
  `original_id` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `original_id` (`original_id`),
  KEY `date` (`date`),
  KEY `vip` (`vip`),
  KEY `on_off` (`on_off`),
  KEY `check` (`check`),
  KEY `left` (`left`),
  KEY `id_category` (`id_category`,`date`),
  KEY `id_user` (`id_user`,`date`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 PACK_KEYS=0 AUTO_INCREMENT=153217 ;

--
-- Дамп данных таблицы `adverts`
--

INSERT INTO `adverts` (`id`, `id_category`, `title`, `text`, `date`, `price`, `curency`, `id_city`, `id_user`, `check`, `on_off`, `vip`, `color`, `look`, `data_click`, `video`, `left`, `right`, `vip_date`, `foto`, `parse`, `old_num`, `upkol`, `original_id`) VALUES
(4562, 77, 'Samsung E1080 очень тонкий новый цена 380 руб.', 'Новая модель Samsung E1080 оснащена всеми основными функциями и привлекает современным дизайном. ', 1315253454, NULL, NULL, 2, 10, 1, 1, 0, 0, 29, 0, '', 0, 31, 0, 1, 1, 0, 0, 8650123);
mdova Сообщение 17/03/2012 10:20 Копия темы
Пробовал так – DELETE FROM `adverts` WHERE `date`  < NOW() – INTERVAL 7 DAY

не помогло (( потом так – DELETE FROM `adverts` WHERE `text`  < NOW() – INTERVAL 7 DAY удалило напрочь всё что было, без разбора...

Как же удалить только то что по времени старое... ?((
idle Сообщение 17/03/2012 10:27 Копия темы
WHERE `date`  <  UNIX_TIMESTAMP()-86400*7
mdova Сообщение 17/03/2012 11:47 Копия темы
Спасибо огромное! Благодарю, человечище! :)) Очень помогли, теперь супер, вводим:

DELETE from `adverts` WHERE `date` < UNIX_TIMESTAMP()-86400*93

// Очищаем БД от старых объявлений. // Удаляем объявления старше 93 дней(три месяца), число меняем на нужное...
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"