gpt4 book ai didi

ruby-on-rails - rails : get a list of random items from MySQL database

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:22 26 4
gpt4 key购买 nike

我为每个帖子设置了一些标签。 (与 SO 非常相似)。我想要 20 个随机项目,不重复。

我知道我可以使用 Tags.all.rand(并重复 10 次)但是,这不能保证唯一性。

而且我知道我可以使用 SQL 查询,但由于我的开发环境在生产环境中使用 sqlite 作为数据库和 MySQL,ORDER by RAND 对两者都不起作用。

除了有两个不同的查询(开发和生产)之外,我还能做什么?

谢谢

最佳答案

您可以使用以下方法随机选择 20 个标签样本:

Tag.all.sort_by {rand}[0..19]

(感谢 chubas 提供了这个简单的解决方案!)

这样做的缺点是它在大型数据集上效率低下。您可以通过仅选择 ID 来改进这一点:

Tag.all(:select => :id).map(&:id).sort_by{rand}[0..19]

关于ruby-on-rails - rails : get a list of random items from MySQL database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446181/

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