简而言之,我有各种各样的游戏,它的得分板显示了最终玩家的得分+实现它的时间。我需要订购我的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
答案 0 :(得分:10)
您的查询应该可以正常运行。如果您有任何问题,请将字段名称括在引号中,如下所示:
$sql1 = "SELECT * FROM boobmatch_highscores ORDER BY `t_score` DESC, `time` ASC";
猜测它是MySQL,否则报价不是必需的
答案 1 :(得分:1)
你应该使用下面的代码..它的工作。
$query = "SELECT field1, field2 from tablename ORDER BY field1 DESC, field2 DESC";
答案 2 :(得分:0)
你应该使用time
的整数列而不是varchar,
这意味着将00:19:32
转换为仅1172秒,
然后很容易排序
答案 3 :(得分:0)
我认为这是按多重价值排列订单的最佳解决方案。
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
答案 4 :(得分:0)
您必须使用此查询:
select * from boobmatch_highscores order by time ASC, t_score DESC
现在时间按升序显示,分数按降序显示。
答案 5 :(得分:-2)
试试
$sql1 = "SELECT * FROM boobmatch_highscores ORDER BY t_score * time DESC";