|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
У меня есть база данных на 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 не дает использовать вложенные подзапросы. и я не помню: какая-нить последняя версия дает это делать? если да - можно одним запросом сделать |
|
|||||
Регистрация: Apr 2003
Сообщений: 243
|
2mishinaelle:
В версии 4 и выше можно без вложенности: update users set userbal=userbal+1 order by userbal limit 100 |
|
|||||
2styx: спасибо, буду знать
|
|
|||||
Ветеран форума
|
Цитата:
|
|
|||||
ну не кидайте в меня тухлыми помидорами ))
|
|
|||||
Цитата:
Цитата:
Всем большое спасибо, проблему решил, скрипт написал, вот только не выспался, всю ночь на сайте скрипт отлаживал. :-) Последний раз редактировалось Flesh5; 24.11.2004 в 11:46. |
Часовой пояс GMT +4, время: 19:55. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|