Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Составление SQL-запросов > Выбрать не более 4 повторяющихся элементов |
Автор: DIMONSOFT 15.7.2011, 15:30 |
В таблице есть такие данные: http://s2.ipicture.ru/ Нужно выбрать все записи, но чтобы логин не повторялся более 4 раз. Т.е.: http://s2.ipicture.ru/ |
Автор: Данкинг 15.7.2011, 16:09 | ||
|
Автор: Данкинг 15.7.2011, 16:11 |
Zloxa, зачем так сложно? ![]() |
Автор: Zloxa 15.7.2011, 16:12 |
Данкинг, вероятно, просто кто-то из нас не совсем правильно понял задачу ![]() |
Автор: DIMONSOFT 15.7.2011, 17:57 | ||||
Да, конечно.
Я так понимаю, это выберет все записи, у которых одинаковый логин повторяется менее 5 раз. Извините, неверно сформулировал задачу. В таблице хранятся логины и дата. Нужно выбрать не более 5 записей каждого логина, в которых дата равна 00-00-0000 и при этом же, дата последних 5 записей(с этим логином) должна быть больше 1 часа. Если дата меньше часа(например, нашлось 3 записи с логином anton, то нужно выбрать не 5, а 2 записи с логином anton, где дата равна 00-00-0000. Объясню проще: пишется спамилка, можно спамить не более 5 раз в час с одного логина. В таблицу постепенно заносятся записи с логином и параметрами. Скрипт будет вызываться по крону. p.s. ничего асоциального ![]() Пример таблицы: | login | data | user1 00-00-0000 00 00 user1 00-00-0000 00 00 user1 00-00-0000 00 00 user1 00-00-0000 00 00 user1 00-00-0000 00 00 user2 00-00-0000 00 00 user2 00-00-0000 00 00 user1 00-00-0000 00 00 user1 15-07-2011 19:04 Т.е. нужно: | login | data | user1 00-00-0000 00 00 user1 00-00-0000 00 00 user1 00-00-0000 00 00 user1 00-00-0000 00 00 user2 00-00-0000 00 00 user2 00-00-0000 00 00 User1 выбирается 4 записи, т.к. возраст последней < 1 часа, а постить можно не более 5 раз в час. |
Автор: DIMONSOFT 15.7.2011, 19:44 | ||
Решил задачу с помощью php:
|