Php MySQL按两个值排序

Php MySQL按两个值排序,php,mysql,sql-order-by,Php,Mysql,Sql Order By,简言之,我有一个类似的游戏,它的记分板显示了玩家在游戏结束时的得分+他们花了多长时间完成游戏。我需要对我的MySQL结果进行排序,以便在最快的时间内得分最高的是第一名,在最慢的时间内得分最低的是最后一名,并且两者之间的所有内容都以相同的方式进行排序。但我不知道该怎么做,以下是我的sql: $sql1 = "SELECT * FROM boobmatch_highscores ORDER BY t_score DESC, time ASC"; 任何帮助都将不胜感激 表中的数据如下: Score

简言之,我有一个类似的游戏,它的记分板显示了玩家在游戏结束时的得分+他们花了多长时间完成游戏。我需要对我的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
试试看

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

你的查询应该工作得很好。如果您有任何问题,请将字段名用引号括起来,如下所示:

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

猜测它是MySQL,否则就不需要引号了

您应该为时间使用整数列,而不是varchar,
这意味着将
00:19:32
转换为1172秒,

然后就很容易排序了

您应该使用下面的代码。。它起作用了

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

我认为这是按多值排序的最佳解决方案

 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

您必须使用此查询:

select * from boobmatch_highscores order by time ASC, t_score DESC

现在时间按升序显示,分数按降序显示。

你得到的结果与你期望的结果相比是什么?我在这个问题中看到的第一件事是“boobmatch”,还是我立即知道游戏是什么?如果你能给出一些示例数据,以及你期望的输出结果是什么(显示可能出现的复杂情况),这将极大地帮助我们帮助您…时间是日期还是秒?添加了表格数据,时间是PHP时间格式的,小时、分钟、秒,获胜者是时间最慢的玩家。