![]() |
У меня есть база данных на MySQL ...
Здравствуйте,
У меня есть база данных на MySQL, с несколькими таблицами. Одна таблица содержит около 500 записей, с информацией о статистке пользователей. Моя задача выбрать 100 пользователей с наивысшим балом (значение балла находится в диапазоне 0-100), если у нескольких пользователей один и тот же бал не имеет значения который я выберу. Проблема заключается в следующем: как можно выбрать 100 пользователей, и это решение должно быть простым. Стандартное решение типа помещение всех значений в массив, и потом выбор лучших 100 пользователей не подходит по той причине что, надо загружать информацию о 500 пользователей а это нагрузка на сервер. Спасибо за помощь |
что-то в духе
select UserID from Users order by UserBal desc limit 100; |
Spasibo, eto tochno to chto mne nujno bilo!
|
А что посоветуете если мне нужно этим лучшим сто пользователям увеличить рейтинг, например на 1.
update UserID здесь что-то from Users order by UserBal desc limit 100; Спасибо за помощь |
я бы сделала так:
1. сначала делаем выборку, как было описано выше. 2. сливаем все полученные UserID в строку вида id1,id2,id3,...id100 3. делаем запрос: update Users set что_тебе_нужно_сделать where UserID in (строка из п.2); просто моя версия MySQL не дает использовать вложенные подзапросы. и я не помню: какая-нить последняя версия дает это делать? если да - можно одним запросом сделать |
2mishinaelle:
В версии 4 и выше можно без вложенности: update users set userbal=userbal+1 order by userbal limit 100 |
2styx: спасибо, буду знать
|
Цитата:
|
ну не кидайте в меня тухлыми помидорами :)))
|
Цитата:
Цитата:
Всем большое спасибо, проблему решил, скрипт написал, вот только не выспался, всю ночь на сайте скрипт отлаживал. :-) |
| Часовой пояс GMT +4, время: 01:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.