Grails GORM从表中返回随机行?

Ala*_*oud 7 grails grails-orm

在我的grails应用程序中,我有:

keywords = Keyword
    .findAll("from Keyword where locale = '$locale' order by rand() ", [max:20])
Run Code Online (Sandbox Code Playgroud)

假设表中有数千行符合上述条件.但似乎从表返回的行不是随机的,但是按顺序将行存储在Db中,尽管在返回的20行的上下文中它们是随机的.为了我的应用程序工作,我希望此查询从表中返回完全随机的行,如行ID 203,行ID 3789,行ID 9087,行ID 789,依此类推.怎么可能?

lee*_*tts 12

我使用以下样式:

Keyword.executeQuery('from Keyword order by rand()', [max: 9])
Run Code Online (Sandbox Code Playgroud)

它从整个表中返回随机行(我们使用的是MySQL).

我不确定为什么执行查询的行为与findAll不同.