[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQL положение записи при определённом условии
wollk
Подскажите пожалуйста, есть ли какая-нибудь функция, которая может выдать положение записи в таблице при определённом условии. Я например хочу показать место в рейтинге пользователей.

Не прокручивать же в цикле всю отсортированную таблицу юзеров, пока логин нужный не встретишь



Спустя 24 минуты, 15 секунд (4.11.2011 - 20:09) qsich написал(а):
"SELECT username FROM `table_name` WHERE username='{$user_name}'"

Спустя 7 минут, 27 секунд (4.11.2011 - 20:16) wollk написал(а):
Хм, наверное вы меня не так поняли.
Мне нужно узнать положение человека в рейтинге.
Я знаю только как сделать это через цикл.
SELECT user FROM users ORDER by rating
а потом в цикле прокрутить всё до того момента пока не встречу нужного юзера

Спустя 2 часа, 50 минут, 27 секунд (4.11.2011 - 23:06) jetistyum написал(а):
ну например можно выбрать количество юзеров, у которых рейтинг <= рейтинг нужного тебе юзера.... вот тебе и место будет

Спустя 32 минуты, 15 секунд (4.11.2011 - 23:39) Placido написал(а):
Можно через временную таблицу
CREATE TEMPORARY TABLE `ranks` (`rank` INT AUTO_INCREMENT PRIMARY KEY) SELECT `user` FROM `users` ORDER BY `rating`; 
SELECT `rank` FROM `ranks` WHERE name = 'Имя юзера';

Спустя 1 час, 53 минуты, 32 секунды (5.11.2011 - 01:32) Placido написал(а):
Хотя, конечно, лучше сделать, как предложил jetistyum:

SELECT count(*) FROM `users` WHERE `rating` <= ANY (SELECT `rating` FROM `users` WHERE `name` = 'Имя юзера');

Спустя 10 часов, 23 минуты, 6 секунд (5.11.2011 - 11:55) Guest написал(а):
Точно, спс...

Спустя 7 месяцев, 28 дней, 5 часов, 11 минут, 21 секунда (3.07.2012 - 17:07) Дамир написал(а):
Здорово придумано
SELECT count(*) FROM `users` WHERE `rating` <= ANY (SELECT `rating` FROM `users` WHERE `name` = 'Имя юзера');

Тоже думал через цикл делать=) Спасибо)
Быстрый ответ:

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