当前位置:  开发笔记 > 编程语言 > 正文

MYSQL按喜欢/不喜欢和受欢迎程度排序

如何解决《MYSQL按喜欢/不喜欢和受欢迎程度排序》经验,为你挑选了1个好方法。

我有包含喜欢和不喜欢的评论表,现在我的顺序有问题。

实际上,我的系统在顶部显示的评论数最多。

我正在寻找YouTube中的系统。

这意味着具有100like / 100dislikes的注释的顺序高于1/1。

我希望这是可以理解的:)



1> Lukasz Szozd..:

这是经典的问题,如何对upvote / downvote,正/负,喜欢/不喜欢等进行排名。有几种可能的解决方案,但在特定条件下可能会给出错误的结果。

我强烈建议您阅读和使用像 How Not To Sort By Average Rating

问题:

您需要某种“分数”来进行排序。

错误的解决方案#1:得分=(正面评分)-(负面评分)

错误的解决方案#2:得分=平均评分=(正面评分)/(总评分)

正确的解决方案:分数= Bernoulli参数的Wilson分数置信区间的下限

示例代码(您可以轻松地根据需要对其进行调整):

SELECT id, ((positive + 1.9208) / (positive + negative) - 
                1.96 * SQRT((positive * negative) / (positive + negative) + 0.9604) / 
                       (positive + negative)) / (1 + 3.8416 / (positive + negative)) 
       AS ci_lower_bound 
FROM your_tab 
WHERE positive + negative > 0 
ORDER BY ci_lower_bound DESC;

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有