У меня есть запрос, который перебирает каждый результат и обновляет столбец:Обновление столбца на основе его позиции в результатах
SET @counter = 0;
UPDATE users SET rank_level = @counter := @counter + 1 ORDER BY level DESC;
SELECT rank_level, level FROM users ORDER BY rank_level ASC;
который выводит:
Но то, что я попытка сделать это только приращение переменной, если значение уровня изменяется. Итак, если две строки, имеющие одинаковый уровень, имеют одинаковый ранг 8.
Любые идеи? Благодарю.
Второй ответ на вопрос, который я помечена как дубликат держит ответ. Это в основном MySQL-версия функции windowed rank(). – jpw
Я не уверен, что это будет считаться дубликатом - мы видели гораздо худшие вопросы с похожими ответами на SO. Это должно помочь: http://sqlfiddle.com/#!9/3e981/1 – sgeddes
@sgeddes Если вы действительно считаете, что этот вопрос не является тем же, и что ответ, который я указал, не применим, у вас есть право на повторите вопрос. Я считаю, что моя оценка была правильной. – jpw