php - 为什么在使用 count(*) DESC 时结果不按顺序显示

标签 php mysql

我正在尝试获取结果并按分数降序列出它们。一切正常,除了最后的结果由于某种原因不符合顺序,如下所示。是什么导致最后一条记录未按顺序列出?

姓名分数
杰伊 19
克里斯 12
洛克 1
迈克 3

相关代码如下:

$results = $dbh->prepare("select 
wp_users.ID,
wp_users.display_name,
points.ID,
points.PID,
SUM(points.PID) AS total
FROM points
LEFT JOIN wp_users ON points.ID=wp_users.ID
GROUP BY points.ID ORDER BY count(*) DESC 
LIMIT 4");

最佳答案

大概,您想按总数排序:

order by total desc

或:

order by sum(points.pid) desc

您得到的排序是基于匹配记录的数量,而不是输出中的总和。

关于php - 为什么在使用 count(*) DESC 时结果不按顺序显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714010/

相关文章:

mysql - 我如何按字段值分组?

php - 存储过程 : how to insert the relational data?

php - 通过过滤器从多个数据库中选择

php - PostgreSql 'PDOException' 与消息 'could not find driver'

php - 从 Slim CSRF 中间件中排除路由

mysql - 在 MySQL 中删除表

mysql - 将 SUM 与 UNION 结合使用

php - 调试通用 JS 函数 AJAX 调用后发生的 PHP 错误

php - Android InApp 购买验证

php - 有没有机制来禁用 file_get_contents() 函数工作?