我创建了一个比赛,其中推荐他人的人增加了每次推荐的获胜几率。现在我必须弄清楚如何使用mysql或php实际上给他们更好的赔率。选择随机行不会削减它。
在我的表中,我有两列,一列用于ID,另一列用于推荐ID。该表通过将ID添加到引荐ID字段来跟踪谁引用了谁,因此前几行数据如下所示:
name id referralid
mark 15 20
ted 20
jim 22 20
因为他引用了另外两个人,所以'ted'应该有3次获胜机会。我怎么能在mysql或php中做到这一点?
答案 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,请说出随机数。 你会在两行中都指出。