Перейти к контенту
  • 0

Очистка БД от лишних сообщений


arietz

Вопрос

Производил массовую очистку форумов. Удалял темы через "массовое удаление/перемещение". Все бы хорошо, темы удалены, но все сообщения остались в базе. Как от них избавиться?
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Сначала получаем массив айдишников топиков:

SELECT tid FROM ibf_topics LIMIT 0, 1000000

Это можно сделать в пхпадмине, копипастнуть результат в ворда; там сделать автозамену символов абзаца на запятую, чтобы в итоге получить строку: список цифр через запятую.

Затем эту строку подставить в запрос:

DELETE FROM ibf_posts WHERE topic_id NOT IN(список)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Это можно сделать в пхпадмине, копипастнуть результат в ворда; там сделать автозамену символов абзаца на запятую

 

select concat(tid,',') from ibf_topics

Ссылка на комментарий
Поделиться на других сайтах

  • 0
select concat(tid,',') from ibf_topics

 

Ага, спасибо!

Если база небольшая,это позволит выполнить поиск в одно действие:

SELECT * FROM ibf_posts WHERE topic_id NOT IN(select concat(tid,',') from ibf_topics)

 

Само же по себе не избавляет от обработки результатов в текстовом редакторе, concat не делает единой строки, а лишь добавляет символы к к какждой строке в массиве строк.

 

Нет ли в sql чего-то типа implode(",",tid) ?

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

  • 0

:D

 

да нет, для вложенного запроса запятая не нужна

SELECT * FROM ibf_posts WHERE topic_id NOT IN (select tid from ibf_topics)

 

запятая нужна именно как раз если будешь результат запроса копипастить и вставлять в IN запроса вручную.

 

Само же по себе не избавляет от обработки результатов в текстовом редакторе, concat не делает единой строки, а лишь добавляет символы к к какждой строке в массиве строк.

а зачем обрабатывать? Точнее что именно ты собираешься обрабатывать в редакторе?

Просто получаешь ответ и копипастишь. Или я что-то не понял?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Пхпадмин все равно добавляет свои строки то ли каждые 500, то ли 1000.

Да и просто неэстетично смотрится столбец в несколько тысяч строк... В строку через запятую с пробелом намного эстетичней. :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Пхпадмин все равно добавляет свои строки то ли каждые 500, то ли 1000.

А чего он добавляет?

Или можно выполнить из админки форума.

 

Да и просто неэстетично смотрится столбец в несколько тысяч строк... В строку через запятую с пробелом намного эстетичней.

ну мне например будет лучше большим столбиком чем делать какие-то телодвижения с обработкой в редакторе.

На результате запроса столбик никак не скажется и в байтах его объём займёт столько же места сколько и твой в строчку :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
А чего он добавляет?

Или можно выполнить из админки форума.

Строчку меню с именами полей добавляет.

Админка вообще бьет на страницы. Хотя...

select concat(tid,',') from ibf_topics LIMIT 0, 1000000

- работает как надо!

Спасибо! В самом деле так можно без последующего редактирования результатов.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.