我有一个MySQL表,里面有一堆条目,还有一个名为"Multiplier"的列.此列的默认(和最常见)值为0,但可以是任何数字.
我需要做的是随机从该表中选择一个条目.但是,行根据"乘数"列中的数字进行加权.值为0意味着它根本没有加权.值为1意味着它的加权值是两倍,就像条目在表中两次一样.值为2意味着它的加权值是其三倍,就像条目在表中三次一样.
我正在尝试修改我的开发人员已经给我的内容,很抱歉,如果设置没有多大意义.我可能会改变它,但希望保留尽可能多的现有表格设置.
我一直试图弄清楚如何使用SELECT和RAND(),但不知道如何进行加权.可能吗?
我正在使用MySQL.我有一张看起来像这样的表:
id: primary key
content: varchar
weight: int
Run Code Online (Sandbox Code Playgroud)
我想要做的是从该表中随机选择一行,但考虑到重量.例如,如果我有3行:
id, content, weight
1, "some content", 60
2, "other content", 40
3, "something", 100
Run Code Online (Sandbox Code Playgroud)
第一行有30%被选中的机会,第二行被选中的几率为20%,第三行被选中的几率为50%.
有没有办法做到这一点 ?如果我必须执行2或3个查询,这不是问题.