[Grails] Grails中随机取出一条Mysql数据的方法

zjnbshifox 2007-10-04
现在的代码如下
def index = {
    def artlist = Article.findAll("from Article  order by rand() ")
    def art = null
    if(artlist!=null){
        art = artlist.get(0)
    }
    [ article:art ]
}
这样的话,可能会把所有的记录都取出一遍,效率太低了,白鹅来rand的效率就很低了,如果在后面加上limit 1就出错了
有什么办法解决吗?
dellsoft 2007-10-09
我个人可以通过下面的方法解决

def count = Article.count() //统计记录数

def rdm  = Integer.Random() //通过random方法取一个 count中的数字(上面方法可能不对)

然后再 get【rdm】
Global site tag (gtag.js) - Google Analytics