Php MySQL按两个值排序
简言之,我有一个类似的游戏,它的记分板显示了玩家在游戏结束时的得分+他们花了多长时间完成游戏。我需要对我的MySQL结果进行排序,以便在最快的时间内得分最高的是第一名,在最慢的时间内得分最低的是最后一名,并且两者之间的所有内容都以相同的方式进行排序。但我不知道该怎么做,以下是我的sql: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
$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时间格式的,小时、分钟、秒,获胜者是时间最慢的玩家。