php - 结果 "10.00"未显示在 Mysql 查询中 TOP 结果从 1 到 10

标签 php mysql

我正在使用以下查询来显示用户今天取得的最佳分数的前 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 etc.
  • 最高分是 10.00,但这是唯一未显示在前 10 名列表中的分数。
  • 我有一种预感,它被视为 1..something 而不是 10,但我不确定如何调试它。请帮忙

最佳答案

我怀疑您的 score 列是 varchar 类型而不是 decimal 类型。当您在 varchar 列上使用 order by 时,它将使用 char 值而不是整数值进行排序。字符串 '10.00' 低于 '9.90'。

确保您的数据库将分数存储为 decimal 而不是 varchar。

关于php - 结果 "10.00"未显示在 Mysql 查询中 TOP 结果从 1 到 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659876/

相关文章:

mysql - MariaDB 10.1 中 DELETE 语法错误的未知原因

php - Laravel 中的表连接

php - 在事务中插入 mysql 外键和主键。

php - (PHP MYSQLI) 使用 SELECT OR 时出现奇怪的 'No index used' 错误

mysql - 可以在声明为 FLOAT 的列中输入的值有哪些限制?

php - 通过XAMPP使用PHP连接到MySQL时,即使授予所有特权,访问也会被拒绝

php - POST 请求中的字符编码错误

javascript - 在号召性用语之前显示模式引导

php - HTML 表单加载通过 php 显示 sql 十六进制值

php - 从 mysql 数据库获取不必要的数据??? (php)