Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有偏/加权随机选择_Mysql_Random - Fatal编程技术网

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。这对您有意义吗?表中已存在活动余额