MySQL порядок по двум значениям

Короче говоря, у меня есть своего рода игра, и табло для нее показывает счет игрока в конце + сколько времени они потратили на ее достижение. Мне нужно упорядочить результаты MySQL таким образом, чтобы самый высокий результат за самое быстрое время был первым, а самый низкий результат за самое медленное время - последним, а все промежуточные значения ранжировались одинаково. Но я понятия не имею, как я это сделаю, вот мой sql в его нынешнем виде:

$sql1 = "SELECT * FROM boobmatch_highscores ORDER BY t_score DESC, time ASC";

Любая помощь будет принята с благодарностью!

Данные в таблице:

Score       Time
23        00:04:32
23        00:04:31
25        00:02:32
16        00:06:32
35        00:04:32
2         00:01:17
-13       00:19:32
-3        00:07:27
 jcho36031 мая 2012 г., 15:34
время дата или секунды?
 Dave Rix31 мая 2012 г., 15:33
Если вы можете предоставить некоторые примеры данных и то, что вы ожидаете получить (показывая, где могут быть осложнения), это очень поможет нам помочь вам ...
 AviateX1431 мая 2012 г., 15:37
Добавлено, как могут выглядеть данные таблицы, время в формате PHP, часы, минуты, секунды
 Random Human31 мая 2012 г., 15:32
Хуже ли то, что первым, что я увидел в этом вопросе, было «Boobmatch»? или что я сразу понял что за игра была?
 Andy♦31 мая 2012 г., 15:32
Какие результаты вы получаете против того, что вы ожидаете?

Ответы на вопрос(6)

Решение Вопроса

Ваш запрос должен работать отлично. Если у вас есть какие-либо проблемы, просто заключите имена полей в кавычки следующим образом:

$sql1 = "SELECT * FROM boobmatch_highscores ORDER BY `t_score` DESC, `time` ASC";

Предполагаю, что это MySQL, иначе кавычки не понадобятся

просто попробуй

$sql1 = "SELECT * FROM boobmatch_highscores ORDER BY t_score * time DESC";
 31 мая 2012 г., 15:36
И победителем становится игрок с самым медленным временем.

Вы должны использовать приведенный ниже код. Это работает.

$query = "SELECT field1, field2 from tablename ORDER BY field1 DESC, field2 DESC";

Вы используете этот запрос:

select * from boobmatch_highscores order by time ASC, t_score DESC

Теперь время отображается в порядке возрастания, а счет отображается в порядке убывания.

Вы должны использовать целочисленный столбец дляtime вместо varchar,
это означает преобразование00:19:32 до 1172 секунд,
тогда довольно легко для сортировки

Я думаю, что это лучшее решение для упорядочения заказа по нескольким значениям.

 SELECT * FROM hotel   
   WHERE confId=13   
   GROUP BY hotelName   
   ORDER BY CASE
   WHEN rating = '5 Star' THEN 1 WHEN rating = '4 Star' THEN 2   
   WHEN rating = '3 Star' THEN 3 WHEN rating = 'BUDGET & EQUIVALENT HOTELS' THEN 4 
 END

Ваш ответ на вопрос