gpt4 book ai didi

PHP 权重 SQL 结果

转载 作者:行者123 更新时间:2023-11-30 00:40:08 27 4
gpt4 key购买 nike

我有一个 mysql 表,其中存储一列(称为 tickets),并且 tickets 值可以是任意数字。

我想要做的是有一个mysql查询,从列中选择所有行,按降序对它们进行排序,然后使用PHP对查询结果进行“加权”,以便具有门票值(value)越高,被选中的机会就越高。

这听起来很令人困惑。本质上,一行拥有的数量越多,被选中的机会就越高。

有没有办法使用程序 mysqli 来选择行并使用 PHP 来获取票证?

最佳答案

所以查询本身不会得到你想要的,这本质上是一个加权随机选择。听起来您需要做的是选择所有行并将它们放置在一个数字索引数组中,其中将具有 X 数量的票证的行放置在数组中 X 次在不同的索引处。然后随机选择 0 到 [ARRAY_SIZE - 1] 之间的数字来确定您选择的行。

因此查询可能如下所示:

SELECT id, tickets FROM table

其中 id 是表的主键。

代码可能如下所示:

// your DB query logic here
// proceed with following code only if non-empty result set is returned

// build the array
$selection_array = array();
while($row = /* your DB row fetch mechanism here */) {
$temp = array_fill(0, (int)$row['tickets'], $row['id']);
$selection_array = array_merge($selection_array, $temp);
}

// select value from array
$random = rand(0, count($selection_array) - 1);
$selected_id = $selection_array[$random];

关于PHP 权重 SQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com