使用两列选择随机条目

时间:2012-10-16 14:30:47

标签: mysql random

我创建了一个比赛,其中推荐他人的人增加了每次推荐的获胜几率。现在我必须弄清楚如何使用mysql或php实际上给他们更好的赔率。选择随机行不会削减它。

在我的表中,我有两列,一列用于ID,另一列用于推荐ID。该表通过将ID添加到引荐ID字段来跟踪谁引用了谁,因此前几行数据如下所示:

name   id  referralid 
mark   15   20 
ted    20 
jim    22   20

因为他引用了另外两个人,所以'ted'应该有3次获胜机会。我怎么能在mysql或php中做到这一点?

3 个答案:

答案 0 :(得分:1)

SELECT people.name, people.id
FROM people
LEFT JOIN people referred_people ON referred_people.referralid = people.id
ORDER BY RAND()
LIMIT 1

假设您的表名为 people ,则选择

mark
ted
ted
jim

使用臭名昭着的ORDER BY RAND()构造随机排序(慢但你没有要求最大性能),然后从该列表中选择一个结果。

答案 1 :(得分:0)

select a.name,b.Odds
from (select referralid,count(1) Odds from    yourtable
group by referralid) b inner join yourtable a
on a.id=b.referralid

答案 2 :(得分:0)

试试这个::

为什么不得到一个随机数并得到该数字的行,然后该行中的引用点所指的id将获胜。

说这个给定的数据,如果生成1或3,请说出随机数。 你会在两行中都指出。