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

Форум MySQL

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

 

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

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

тема: Удаление тем-переносов
 
 автор: cheops   (21.03.2011 в 18:34)   письмо автору
 
 

Не секрет, что на форума часто используются темы-переносы. Когда посетитель ошибается с выбором раздела форума, модератор переносит тему в целевой раздел, при этом на старом месте остается тема-ссылка, которая позволяет найти посетителю новое месторасположение его темы. Со временем таких тем-переносов накапливается изрядное количество и они занимают место в архивах. Для удаления таких тем я решил воспользоваться полем для счетчика количества сообщений number, пометив количество сообщений равным 0 (предварительно были устранены проблемы с ошибками базы данных, когда значение счетчика ошибочно приравнивалось 0).
UPDATE
  (SELECT id_theme
   FROM archive_posts
   WHERE id_theme IN (
     SELECT id_theme
     FROM archive_themes
     WHERE number = 1
    ) AND
    name LIKE 'Тема%') AS mark
 LEFT JOIN 
   archive_themes
 ON mark.id_theme = archive_themes.id_theme
SET archive_themes.number = 0;
После этого запроса не составило труда удалить сообщения из таблицы archive_posts
DELETE FROM archive_posts
WHERE
  id_theme IN (SELECT id_theme
               FROM archive_themes
               WHERE number = 0)
и таблицы archive_themes
DELETE FROM archive_themes
WHERE number = 0

  Ответить  
Rambler's Top100
вверх

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