mysql比较总体上的3列顺序
我有一个游戏,用户可以保存在那里的名称和数据库中的分数 纵队 名称、尝试次数、正确率、所用时间、图像集 其中3列基于分数 尝试次数、正确率、所用时间、 目前,我的表显示时间递增mysql比较总体上的3列顺序,mysql,Mysql,我有一个游戏,用户可以保存在那里的名称和数据库中的分数 纵队 名称、尝试次数、正确率、所用时间、图像集 其中3列基于分数 尝试次数、正确率、所用时间、 目前,我的表显示时间递增 $sql = "SELECT * FROM Score ORDER BY time ASC LIMIT 5"; 有没有人可以比较分数 这是一个2分的例子 第一行:46,52%,02:36 第二行:38,63%,02:47 在这三个分数的基础上,我可以平均比较哪一个应该是最好的 第一行尝试次数较多,正确率较低,但时间较快
$sql = "SELECT * FROM Score ORDER BY time ASC LIMIT 5";
有没有人可以比较分数
这是一个2分的例子
第一行:46,52%,02:36第二行:38,63%,02:47 在这三个分数的基础上,我可以平均比较哪一个应该是最好的 第一行尝试次数较多,正确率较低,但时间较快。 第二排尝试次数较少,正确率较高,但时间较慢 在理论上,尝试:ASC,百分比:DESC,时间ASC 如果我将订单更改为: $sql=“按“时间ASC”、“尝试ASC”、“百分比”从分数顺序中选择*” 描述“限制5” 它会把行弄乱吗?还是会根据所有3行按顺序显示它们 此图像正在使用时间ASC 最低尝试次数为12次,即100% 我需要将尝试与时间进行比较 我可以将时间/尝试除以,然后按结果排序吗 这是正确的吗
$sql = "SELECT * FROM Score ORDER BY time / tries ASC LIMIT 5";
这篇评论太长了
"Is there away that i can compare on average which of those should be top based on all 3 scores?"
对。但是首先你必须弄清楚这个方法是什么。然后可以在查询中实现它
其次,您的书面查询是:
SELECT *
FROM Score
ORDER BY 'time ASC', 'tries ASC', 'percent DESC'
LIMIT 5;
这不会起任何作用,因为它是按三个常量排序的。删除单引号,仅将其用于字符串常量:
SELECT *
FROM Score
ORDER BY time ASC, tries ASC, percent DESC
LIMIT 5;
实际上,这非常类似于:
ORDER BY time ASC
除非很多人在两行上有完全相同的时间,否则不会使用附加的排序条件。如果要划分两列,请使用排序结果
$sql = "SELECT * FROM Score ORDER BY time / tries ASC LIMIT 18446744073709551615";
然后,如果愿意,可以在表中显示该结果
例如
<td>".round($data[4] / $data[2],2)." Seconds</td>
“.round($data[4]/$data[2],2)。”秒
/将时间除以尝试次数,然后用round()换行以将结果取整
在这种情况下,我建议使用循环(???,2),它将输出大约3.53秒
如果您想要平均分数,请使用时间+尝试-百分比
低集可能尝试次数=12
即使试了12次,时间也可能很长
尝试12次会得到100%的值,这是一个很高的值,所以最好减去这个值
12次尝试+1m 30秒-100%
12次尝试+10h 30m 30s-100%你能提供一个具体的公式或算法来根据这三列对它们进行排序吗?如果我们确切地了解订购的条件,条件订购是可能的。按照您的建议,在“排序依据”中提供多个列将对每个组件的所有行进行排序,而不是对每行的组件进行组合。此外,这些列的数据类型是什么?请发布
SHOW CREATE TABLE Score
的输出。