在我的 grails 应用程序中,我有:
keywords = Keyword
.findAll("from Keyword where locale = '$locale' order by rand() ", [max:20])
假设表中有数千行符合上述条件。但似乎从表中返回的行不是随机的,而是按照行存储在 Db 中的顺序,尽管在返回的 20 行的上下文中它们是随机的。为了让我的应用程序正常工作,我希望此查询从表中返回完全随机的行,例如行 ID 203、行 ID 3789、行 ID 9087、行 ID 789 等等。这怎么可能?
最佳答案
我使用以下样式:
Keyword.executeQuery('from Keyword order by rand()', [max: 9])
它从整个表中返回随机行(我们使用的是 MySQL)。
我不确定为什么执行查询的行为会与 findAll 不同。
关于Grails GORM 从表中返回随机行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374634/