Как удалить пользователей из базы

Доброго дня сообществу!

Подскажите пожалуйста — какими командами в phpMyAdmin можно удалить из базы следующих пользователей:

1. Не активированных пользователей

2. Пользователей с определенными доменами емейлов ( *@сайт.ru )

3. Забаненых пользователей

11 комментариев

avatar
Это тебе на MySQL форум надо. В принципе такой запрос написать не проблема, надо только иметь нужную таблицу из базы данных перед глазами.
avatar
1.
DELETE FROM ls_users WHERE user_activate = 0;

2.
DELETE FROM `ls_users` WHERE user_mail REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';
// Изменить регексп под свои пожелания.
3. По аналогии с 1.
avatar
Пункт 0 забыл — забэкапить базу данных.
avatar
2 второй запрос коварный — похерит всех пользователей. проще дроп сделать
все адреса совпадут по шаблону.
вот:
DELETE FROM `prefix_users` WHERE `user_mail` REGEXP '@site\.com$';
avatar
Я там комментарий оставил — изменить регексп под свои нужды. В чистом виде, да, удалит всех пользователей, имеющих валидный мейл.
avatar
И все? А если эти юзеры имеют свои блоги, посты и камменты (относится к п.2 и 3)?
У меня всегда появлялись какие-нибудь баги после удаления юзеров из базы вручную.
avatar
Кстати, у PSNet есть статья на этот счет
avatar
Спасибо за ссылку!
Почитал — интересно. понял что у меня есть проблемы((( — база у меня почему-то MyISAM
Надо видимо что-то с этим делать…
avatar
Если корректно работает сохранение целостности данных (прописаны внешние ключи в таблицах) то должны удалиться все связанные с пользователем данные.
avatar
Тех что чистил нет ни блогов, ни постов, ни комментов.
Надеюсь багов не будет…
avatar
Спасибо, помогло!!!

1. Изменил ls_users на ls_user — в базе так таблица называется… Вычистил большое количество спамных регистраций
2. Подставил в конце такое '^[A-Z0-9._%-]+@site.ru' — тоже помогло подчистить спамеров, прошедших активацию подтверждением.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.