@Kostya00723

Как сделать топ пользователей на 1-ом запросе к базе?

Задача: есть логин аккаунта
есть таблица с колонками `id` , `art` и `login` (к примеру...)
в `art` заносится количество публикаций пользователя

Я делаю запрос по сортировке этих записей по убыванию значения `art`
как мне в этом запросе получить позицию человека с определённым логином???

Видел кучу скриптов с циклами и прочим, я думаю тут люди что то умнее подскажут
  • Вопрос задан
  • 445 просмотров
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
select count (*) 
from sometable 
where `art` > 
    (select `art` 
     from sometable 
     where 
     `login` = '$login'
     )


кажется так.
Ответ написан
Комментировать
@magazovski
SET @rank=0;
SELECT u.* FROM
(
SELECT @rank:=@rank+1 AS rank, id, art, login
  FROM users
  ORDER BY art DESC
) u where u.login = 'Boris';


sqlfiddle.com/#!9/cff32/19
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега PHP
Можно так:
SET @row_number:=0;
SELECT @row_number:=@row_number+1 AS row_number,db_names FROM mysql_testing
ORDER BY db_names;


или вот так:
SELECT @row_number:=@row_number+1 AS row_number,db_names FROM mysql_testing, (SELECT @row_number:=0) AS t
ORDER BY db_names;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы