In meiner Grails-Anwendung Ich habe:Grails GORM, um zufällige Zeilen aus der Tabelle zurückzugeben?
keywords = Keyword
.findAll("from Keyword where locale = '$locale' order by rand() ", [max:20])
Angenommen, es gibt Tausende von Zeilen in der Tabelle, die die oben genannten Kriterien entsprechen. Aber es scheint, dass die Zeilen, die von der Tabelle zurückgegeben werden, nicht zufällig sind, sondern in der Reihenfolge, in der die Zeilen in Db gespeichert sind, obwohl sie innerhalb des Kontexts von 20 zurückgegebenen Zeilen zufällig sind. Damit meine Anwendung funktioniert, möchte ich, dass diese Abfrage vollständig zufällige Zeilen aus der Tabelle zurückgibt, z. B. die Zeilen-ID 203, die Zeilen-ID 3789, die Zeilen-ID 9087, die Zeilen-ID 789 und so weiter. Wie ist das möglich?
Können Sie auf SQL-Protokollierung aktivieren in Datasource.groovy und sehen, was die Abfrage, die erzeugt wird? Ich benutze eine ähnliche Abfrage gegen MySQL und es scheint zu funktionieren wie erwartet. – leebutts
Tatsächlich verwenden wir die Ausführungsabfrage. Siehe meine Antwort ... – leebutts