Повторяющиеся значения в таблице - поиск и отображение

Идеи для расширения функциональности phpBB 2.0.x
[Greg]
phpBB 1.0.0
Сообщения: 6
Стаж: 19 лет 1 месяц

Повторяющиеся значения в таблице - поиск и отображение

Сообщение [Greg] »

День добрый!
Нужна такая вещь как поиск дублированных значений в базе данных.
Например у меня на форуме стоит лог всех IP при регистрации... нужен скриптик, который искал бы повторяющиеся адреса в таблице и выводил их, таким образом будет больше % поймать читера, чем все смотреть вручную!
Спасибо.
[Greg]
phpBB 1.0.0
Сообщения: 6
Стаж: 19 лет 1 месяц

Сообщение [Greg] »

Неужели никто не может ничего сообразить?
Ребзя, выж гуру! 8)
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Я такой проблемой как-то занимался ....

Тебе нужно сделать следующее:
1 - Создать копию нужной(исходной) таблицы с группировкой по полю в котором нужно удалить дубликаты
2 - Создать индексы в этой "временной" таблице (если индексы есть)
3 - Удалить исходную таблицу
4 - Переименовать временную таблицу в имя исходной

То есть, например есть "table1" и нужно удалить дубликаты по полю "field1".

Соответственно, действия будут такие:
create table table2 select * from table1 group by field1
...
...

и тд

Добавлено спустя 22 минуты 30 секунд:

Если тебе нужно просто смотреть максимальные значения, попробуй поколдовать с array_walk( )
[Greg]
phpBB 1.0.0
Сообщения: 6
Стаж: 19 лет 1 месяц

Сообщение [Greg] »

Мне нужно не удалить!
Нужно чтобы на моем мониторчике отобразились дубликаты!
Например один и тот же IP был записан при регистрации 2-х разных аккаунтов, есть таблица phpbb_users, в ней поля user_reg_ip, username, user_id и куча других, нужно чтобы дубликаты в полях user_reg_ip сопоставлялись с username либо user_id и выводились мне на экран!
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Я сперва подумал, что ты хочешь из таблицы бана, удалить повторяющиеся записи IP-адресов ...
То есть, подумал, что у тебя, каким-то образом, "влетели" в эту таблицу "двойники" :)
В общем, сейчас вроде понятно, хотя мод я не видел ...
Если правильно понял, на этот раз, то делается примерно так:

SELECT pole1, count(*) AS entries
FROM table1
GROUP BY pole1
ORDER BY entries DESC
LIMIT 0, 10

Это выведет "первую десятку" наиболее частых "повторов" из поля pole1 в таблице table1
То есть, можешь выполнить это из phpmyadmin

Если тебе нужно, чтобы в скрипте отображалось число "повторов", то по идее в запрос можно просто добавить подсчитывание count(*), условие(какой номер), ну и соответственно, определить для него переменную, которую потом отображать ...
[Greg]
phpBB 1.0.0
Сообщения: 6
Стаж: 19 лет 1 месяц

Сообщение [Greg] »

Почти то, что нужно!!! Спасибо огромное!!!

Вернуться в «Запросы модов для phpBB 2.0.x»