Не прокручивать же в цикле всю отсортированную таблицу юзеров, пока логин нужный не встретишь
Спустя 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
а потом в цикле прокрутить всё до того момента пока не встречу нужного юзера
Мне нужно узнать положение человека в рейтинге.
Я знаю только как сделать это через цикл.
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` = 'Имя юзера');
Тоже думал через цикл делать=) Спасибо)
SELECT count(*) FROM `users` WHERE `rating` <= ANY (SELECT `rating` FROM `users` WHERE `name` = 'Имя юзера');
Тоже думал через цикл делать=) Спасибо)