gpt4 book ai didi

mysql - 在 rails sqlite vs mysql 中随机选择

转载 作者:行者123 更新时间:2023-11-29 01:07:38 25 4
gpt4 key购买 nike

大家好,我正在尝试从 Ruby on Rails 中的数据库中选择随机数据。不幸的是,sqlite 和 mysql 对“随机”函数使用不同的名称。 mysql使用rand(),sqlite使用random()。到目前为止,我一直很高兴在我的开发环境中使用 sqlite,我不想为此放弃它。

所以我有一个解决方案,但我不是很满意。首先,RoR 中是否有更清晰的抽象来获取随机函数?如果不是,这是获得“适配器”的最佳方式吗?

# FIXME: There has to be a better way...
adapter = Rails.configuration.database_configuration[Rails.configuration.environment]["adapter"]
if adapter == "sqlite3"
# sqllite calls it rand
random = "random"
else
# mysql calls it rand
random = "rand"
end

query.push("SELECT *, (" + random + "() * (0.1 * value)) AS weighted_random_value...")

最佳答案

您可以通过创建函数将 MySQL 的 rand() 有效地别名为标准 random():

CREATE FUNCTION random() RETURNS FLOAT NO SQL SQL SECURITY INVOKER RETURN rand();

关于mysql - 在 rails sqlite vs mysql 中随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549494/

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