Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL order by two values

In short, I have a game of sorts, and the score board for it shows the score of the player at the end + how long they took to achieve it. I need to order my MySQL results so that the highest score in the fastest time is first and the lowest score with the slowest time is last, and everything in between is ranked in the same way. But I have no idea how I'd do that, here's my sql as it stands:

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

Any help would be greatly appreciated!

The data in the table:

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
like image 903
AviateX14 Avatar asked May 31 '12 13:05

AviateX14


2 Answers

You query is supposed to work perfectly. If you have any issues just enclose the field names in quotes like so:

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

Guessing it's MySQL, else the quotes won't be necessary

like image 62
Emmanuel Okeke Avatar answered Oct 14 '22 23:10

Emmanuel Okeke


You should be use below code.. Its working.

$query = "SELECT field1, field2 from tablename ORDER BY field1 DESC, field2 DESC";
like image 22
Amarprof Avatar answered Oct 14 '22 22:10

Amarprof