我使用以下查询来显示用户目前获得的前10名最佳成绩。
$query = 'SELECT *
FROM results
WHERE date ="'.$today.'"
ORDER BY `score` DESC
LIMIT 0 , 10';
- 分数从1到10,格式为:9.20、9.00、8.10、8.00等
- 最高可能的分数是10.00,但这是唯一没有显示在前10名列表中的分数
- 我有一种预感,它被视为1……而不是10,但我不知道如何调试它。请帮助
我怀疑您的score
列是varchar类型,而不是decimal类型。当您对varchar列使用order by时,它将使用char值而不是整数值进行排序。字符串"10.00"低于"9.90"。
确保数据库将分数存储为十进制,而不是varchar。