mysql - 按投票排序

标签 mysql sql

我有一个表Responses 和一个表VotesVotes 表有一列 vote_value,可以是 1-1,具体取决于人们是否投票或投票降低给定的响应。我想知道如何根据投票总和对回复进行排序。

进行连接并简单地按 SUM(vote.vote_value) 作为分数排序(降序)的问题是某些响应没有投票,因此带有 score 的响应 -1 将比没有投票的响应更高(实际上得分为 0)。

如果无法使用 SQL 执行此操作,我想我可以自己在应用程序代码中进行排序。

最佳答案

使用COALESCE当 SUM 返回 NULL 时选择一个值:

COALESCE(SUM(vote.vote_value), 0) AS score

关于mysql - 按投票排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078387/

相关文章:

MySQL FOUND_ROWS 和总行数

mysql - 同时插入状态和选定值

sql - 如何在一个结果行中从单个表中的多行中选择数据?

php - 如何按大多数 View 类别明智地对数据进行排序

mysql - 将 select 和 dateadd 函数的结果集插入到同一个表中

sql - 从MYSQL中的所有表中删除数据

MYSQL 较高的 LIMIT 偏移量使查询变慢

mysql - 如何获得两个特定数字的随机数?

php - 如何在 Eloquent Laravel 中使用名称查找条目?

php - Bootstrap 3 Typeahead Ajax 搜索使用 php mysql 函数