Mysql 有偏/加权随机选择
我使用以下查询选择随机活动:Mysql 有偏/加权随机选择,mysql,random,Mysql,Random,我使用以下查询选择随机活动: SELECT * from ( SELECT campaign_id FROM campaigns WHERE campaign_approved = 1 ) T ORDER BY RAND() LIMIT 1 然而,我想选择活动,仍然是随机的,但被选择的几率与他们的活动\u平衡成比例 例如,如果一个活动的活动_余额为50 另一个的活动余额为1…..第一个应为50/ 51被选中的机会 我如何做这样一个有偏差的随机选择?你需要在一个新的累积列中分配这个活动的余
SELECT * from (
SELECT campaign_id
FROM campaigns
WHERE campaign_approved = 1
) T ORDER BY RAND()
LIMIT 1
然而,我想选择活动,仍然是随机的,但被选择的几率与他们的活动\u平衡成比例
例如,如果一个活动的活动_余额为50
另一个的活动余额为1…..第一个应为50/
51被选中的机会
我如何做这样一个有偏差的随机选择?你需要在一个新的累积列中分配这个活动的余额,然后随机选择1和最大累积值,然后找到它。我还在学习mysql,这对我来说毫无意义:)看看这个累积列或运行总计创建一个具有如下结构的新表:campaing\u id、campaign\u balance、cumulative\u chance。这对您有意义吗?表中已存在活动余额