Ответы пользователя по тегу MySQL
  • Можно ли получить номер определенной строки при сортировке в MySQL

    middle
    @middle
    --- карма пользователя n.
    SET @user_exp = (SELECT exp FROM users where id = {n});
    
    SELECT count(*) FROM users
        WHERE exp > @user_exp OR (exp = @user_exp AND user.id < {n});
    


    Второе условие в OR нужно на тот случай, если у двух пользователей окажется одинаковая карма (сортировать тогда нужно и по exp, и по id, чтобы пользователи с одинаковой кармой не прыгали с места на место даже без изменения кармы). Если этим можно пренебречь, то и условием можно пренебречь.

    Но лучше правда обновлять специальное поле каждые 5 минут скриптом.
    Ответ написан