php - MySQL ORDER BY 带系数?

标签 php mysql sql sql-order-by

我有一个像这样的 MySQL 表:

CREATE TABLE IF NOT EXISTS `story` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `date` datetime NOT NULL,
  `rating_1_nb` int(11) NOT NULL,
  `rating_2_nb` int(11) NOT NULL,
  `rating_3_nb` int(11) NOT NULL,
  `rating_4_nb` int(11) NOT NULL,
  `rating_5_nb` int(11) NOT NULL,
  `favorite_nb` int(11) NOT NULL,
  `status` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 ;

如您所见,我存储了对特定故事发布一星 ( rating_1_nb )、两星 ( rating_2_nb ) ... 评级的次数。我想要创建的是最好的故事和最差的故事的排名,具体取决于这些故事的收视率。

我想创建一个 SQL 查询,它根据故事的评级自动对故事进行排序。所以我的想法是为每个评级列都有一个系数,这样我就可以轻松地进行计算,但我不确定这在性能方面是否是一个好主意。为了创建这个特定的 MySQL 查询,您有什么建议吗?

最佳答案

对我来说,这更有意义,带有系数的评级

SELECT *, ( rating_1_nb*1 + rating_2_nb*2 + rating_3_nb*3 + rating_4_nb*4 + rating_5_nb*5) as ratings FROM story order by ratings

这也将是高效且有效的。

希望对你也有帮助

关于php - MySQL ORDER BY 带系数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165030/

相关文章:

sql - 用配置单元中的一个单元替换多个具有特定字符的单元

mysql - 使用参数在 bash 中执行 .sql 文件

php - 使用curl加载使用JS提交外部表单的HTML文件

php - 需要帮助访问 PHP DOM 元素

mysql - 将多条sql更新语句合二为一

php - 更改原始输入时更新数据库

php - 得到4个随机数

php - 将参数从 php 传递到 casperjs/phantomjs

php - 在 Yii 中生成 gii 代码后如何向模型添加字段?

mysql - 按相关表列排序表的最快方法