根据输入的总点数返回随机行

时间:2013-10-18 01:35:56

标签: mysql sql

我正在进行一项查询,用户在比赛中输入点数。他们可以输入尽可能多的积分。我需要随机选择一名获胜者,但输入分数较多的人在技术上应该有更好的机会被选中。

我目前使用rand和每个用户的总积分总和来提取查询。

表数据如下所示:

fname   lname   user_id points   
John    baker     1 300
Robert  backster  2 40
jason   Doe       3 900

如果我多次运行查询,John会有更好的机会,但是Jason会有更好的机会,John和Robert。

通过rand()

从表格顺序中选择*

1 个答案:

答案 0 :(得分:1)

在查询中完成所有操作会很困难,我个人会依赖你的后端。但如果您必须在MySQL中完成所有操作,我会寻找加权随机选择

this SO post开始,我发现this blog post讨论了它。

基本上,您将使用RAND()函数和对数的某种组合来实现结果。据我所知,您可能需要知道总数/平均值才能获得乘数,但这也应该通过查询来实现。