gpt4 book ai didi

php - 在 MySQL 中选择 n 个组的随机子集

转载 作者:行者123 更新时间:2023-11-30 01:20:40 25 4
gpt4 key购买 nike

我有一个 MySQL 表 players,我尝试将所有玩家随机放入 n 个组 (n>=2),其中每个组都有确定但可变的大小。

示例时间:

将表 players 中的 10,000 行分为 3 个组,其中 A 组包含 5,000 名玩家,B 组包含 3,000 名玩家,C 组包含 2,000 名玩家。

另一个例子可能是:

将表 players 中的 10.000 行分为 4 个组,其中 A 组包含 3.000 名玩家,B 组包含 3.000 名玩家,C 组包含 2.000 名玩家,D 组包含 2.000 名玩家。

现在我的问题:
我应该在 PHP 还是 MySQL 中执行此操作? (我认为 MySQL 可能会更快)
在 MySQL 中是否有更好(更有效)的方法来执行此操作,而不是为每行生成随机数并按该随机数对行进行排序,然后使用 OFFSET 和 LIMIT 来选择行?

最佳答案

我认为最有效、最简单的方法是运行此查询:

SELECT * FROM players
ORDER BY rand()

然后在几个 PHP FOR 循环中迭代结果(每组一个)。

这样,您将只运行一个查询,并迭代一次结果(无论如何,这是您实际上必须做的事情)。

关于php - 在 MySQL 中选择 n 个组的随机子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18582134/

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