[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получения порядкового номера при сортировке
BorodinKO
Имею таблицу:

id |   name   | score
1 Петя 76
2 Ваня 98
3 Даша 109
4 Денис 12
5 Коля 4


Делая запрос
SELECT * FROM `table` ORDER BY `score` DESC


Я получаю

3      Даша      109
2 Ваня 98
1 Петя 76
4 Денис 12
5 Коля 4


Мне же нужно сделать некий запрос, для получения порядкового номера у записи,
к примеру я отправлю 3(Даша) и получу число 1, так как это первый результат в выводе,
отправляя 1(Петя) я получу 3, и т.д.




Спустя 21 минута, 55 секунд (18.07.2012 - 09:53) Winston написал(а):
set @i:=0;
select *,@i:=@i+1 as number from your_table;

Спустя 14 минут, 48 секунд (18.07.2012 - 10:08) Placido написал(а):
Или одним запросом
select @count := @count+1 as `count`, `t`.* from `table` `t`, (select @count := 0) `z`;

Спустя 37 минут, 43 секунды (18.07.2012 - 10:46) BorodinKO написал(а):
select @count := @count+1 as `count`, `t`.* from `table` `t`, (select @count := 0) `z` WHERE id=3 ORDER BY `score` DESC

не выходит так как столбец `count` просто добавляет порядковый номер, а если я припишу условие WHERE id=3 то получу count = 1

Спустя 1 час, 8 минут, 19 секунд (18.07.2012 - 11:54) Placido написал(а):
select `count` from 
(select @count := @count+1 as `count`, `t`.* from `table` `t`, (select @count := 0) `z` ORDER BY `t`.`score` DESC) `derived_table`
WHERE `id` = 3;

Спустя 1 час, 22 минуты, 22 секунды (18.07.2012 - 13:16) sergeiss написал(а):
Можно сделать функцию, которая будет выбирать сначала все данные и давать им порядковые номера, а потом брать нужное условие и возвращать только одну строку.

Вот только я не понял - а зачем это надо? Ты можешь описать задачу, что есть и что надо получить? Не "как" получить, а именно "что" надо получить.

Спустя 7 часов, 37 минут, 38 секунд (18.07.2012 - 20:54) BorodinKO написал(а):
Нет, задача пославлена верно, а делать функцию не ахти, так как нагрузит БД

Спустя 2 минуты, 34 секунды (18.07.2012 - 20:56) Placido написал(а):
А чем мой второй вариант не подходит?

Спустя 1 час, 53 минуты, 57 секунд (18.07.2012 - 22:50) BorodinKO написал(а):
Нет, как раз все подошло спасибо большое =3
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.