Получить 10 случайных записей из базы данных SQLite - PullRequest
1 голос
/ 22 августа 2010

Мне не удалось найти очень хороший способ получить 10 случайных записей из базы данных sqlite. Посмотрите несколько примеров, которые работают с mysql, но они не очень хорошо работают с sqlite, хотя я пытаюсь использовать Random () вместо rand ().

Я пытался получить случайные числа, а затем получить записи по идентификатору, но по некоторым причинам я получаю нулевой результат для нескольких из них. Я был бы любопытен, если бы был лучший подход.

Также, как примечание, это третий день моего использования Ruby и Rails, так что все еще немного в новинку.

1 Ответ

4 голосов
/ 22 августа 2010

Как насчет

User.all.sort_by{rand}.slice(0,10)

Это только для тестирования, верно?

Редактировать : больше не зависит от базы данных, но для sqlite3:

User.find(:all, :order => "RANDOM()", :limit => 10)

и для mysql:

User.find(:all, :order => "RAND()", :limit => 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...