Grails GORM 从表中返回随机行?

标签 grails grails-orm

在我的 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/

相关文章:

Grails 监视文件在 Vagrant 虚拟机内运行的 Docker 容器中不起作用

java - 在线和/或讲师指导的培训 - Grails

grails - 编写必须对命令对象和域对象起作用的自定义 grails 唯一约束

Grails 防止重复插入

Grails 单向多对多

Grails:如何在 <g:message> 默认属性中包含 html 链接?

security - 通过url spring安全保护

grails - 如何在Grails中按多个字段排序?

hibernate - GORM 级联保存的顺序取决于字段名称?真的吗?

grails - Grails Controller 中字段之间的级联更新