Система рейтинга очков

Ниже приведен код для получения ранга определенного изображения, все работает отлично. Однако, если два или более изображений имеют одинаковое количество баллов, я получаю двойные результаты ранга. Моя главная цель состоит в том, чтобы, если у двух или более изображений есть связи total_points, ранжируйте их в зависимости от того, когда эти изображения были отправлены. (старый к недавнему заказу). Как мне разорвать галстук?

0

Решение

Вы можете использовать переменную для ранжирования по сумме очков по убыванию и дате по возрастанию:

set @rank = 0;
select @rank := @rank + 1 as rank,
photo_id,
total_points,
date
from photo_list
order by
total_points desc,
date asc

SQL FIDDLE

0

Другие решения

Как насчет простого запроса, который упорядочивает по сумме баллов, а затем по дате? Этот запрос вернет результаты первой десятки:

SELECT `id`
, `photo_id`
, `total_points`
, `date`
FROM `photos
ORDER
BY `total_points` DESC,
`date` ASC
LIMIT 10
;
0

По вопросам рекламы [email protected]