Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Подскажите пожалуйста как это сделать?
Я пытался написать запрос из 3-х "подзапросов",но не получилось,вот мой код:
Неактивен
Тут уже задавался похожий вопрос http://sqlinfo.ru/forum/viewtopic.php?id=4978
Неактивен
этот метод не подходит,мой запрос скорее всего по проще и поменьше.помогите пожалуйста.
Неактивен
Если не подходит — объясните, почему не подходит. Визуально — задачки одинаковые.
Неактивен
ну смотрите,я не пойму что дает в том описании pos=@pos? это промежуточная переменная? или поле? мне не понятно. Задачи идентичные,да я согласен,вот только там запрос идет вывод позиции за дату,это для меня уже взрыв.Вот допустим у меня есть таблица с 36 записями с полями(NAME,ID,SCORES) все имена в таблице разбросаны,т.е. ни на одном поле нет сортировки,и мне нужно вывести число-позицию в таблице поля NAME, которому будет присвоено значение при отсылке имени игрока на сервер.Как я понимаю, мне просто нужно отослать на сервер переменную NAME="Иванов" и mysql должна выполнить запрос,т.е. подсчитать количество всех записей в таблице с сортировкой по очкам "сверху-вниз" и найти в этом промежутке позицию от 0-й до 36,и уже после сортировки где NAME="Иванов" его позиция окажется 11 после сортировки по очкам в таблице. И вот как только такая запись будет найдена в отсортированной таблице, то сервер вернет значение клиенту например position=11.
Логику я рассказал,а вот реализовать я не могу,проблемы с подзапросами.
Неактивен
Уже разобрался и создал запрос на вывод позиции в рейтинге,я ж говорил что мой запрос легче и короче))
Вот запрос:
SET @t:=1, @tk=0;
SELECT MAX( @tk := ((@t := @t +1) *0 + IF( SCORES.NAME = "Serg", @t , 0 ))) AS position FROM SCORES
ORDER BY SCORE DESC
Отредактированно Clockgen (04.04.2012 22:37:02)
Неактивен
Страниц: 1