结果“;10.00〃;在Mysql查询中没有显示从1到10的TOP结果


Result "10.00" not showing in Mysql query TOP results from 1 to 10

我使用以下查询来显示用户目前获得的前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。