尝试转换此 SQLite 查询

SELECT * FROM `terms` ORDER BY RANDOM() LIMIT 10

使用 Sequel 模型。我得到的最接近的:

Term.order(rand{}).limit(10)
Term.order('random ()').limit(10)

翻译成

<Sequel::SQLite::Dataset: "SELECT * FROM `terms` ORDER BY 0.6160215951854449 LIMIT 10">
<Sequel::SQLite::Dataset: "SELECT * FROM `terms` ORDER BY 'random ()' LIMIT 10">

但两者都不起作用。有没有办法将 SQLite 或其他特定于数据库的函数传递给 Sequel 的 order()

最佳答案

使用 Sequel.lit 表达式有效:

Term.order(Sequel.lit('RANDOM()')).limit(10)

关于ruby - 如何使用 Sequel ORM 以随机顺序从 SQLite 获取记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18306059/

10-11 01:55