我有一个像这样的 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/