Показать сообщение отдельно
Старый 14.06.2009, 01:37   #1
Аватар для Skald
Skald Skald вне форума
Администратор
Фикс для удаления дубликатов пасскеев.

Т.к. с самого начала (еще с оригинального vbtt) тянется неприятный глюк в виде вероятности получения юзерами одинакового пасскея, то выкладываю запрос для обнуления таких дубликатов (потом можно запустить passkeygen.php для генерации пасскеев где их нет).
Код:
update (SELECT count(userid) as `dubl`, max(userid) as `maxid`, torrent_pass 
FROM `user` GROUP BY torrent_pass HAVING `dubl` >  '1' ORDER BY dubl DESC) as dubl 
LEFT join `user` on(dubl.maxid=user.userid) SET user.torrent_pass='';
Что конкретно делает запрос - он обнуляет только один пасскей пользователя с максимальным userid (т.е. тот кто позже зарегистрировался) из группы одинаковых пасскеев. Т.е. если у однин и тот же пасскей встречается более 2-х раз то придется запустить еще несколько раз (но обычно не более 3 - у меня при 150К пользователей максимальное количество дубликатов одного пасскея было 4)

P.S. Если Вы не понимаете зачем этот запрос - просто забудьте об этом сообщении - дубликат пасскея ошибка некритичная - все будет работать и с ними (правда с глюками)
Ответить с цитированием