Получение случайной записи из БД - PullRequest
0 голосов
/ 21 января 2011

Хотите знать, как лучше всего получить случайную запись из базы данных в моих приложениях на Ruby on Rails (2.3.9).

Самым близким, что я получил, было использование ниже. SQLITE3 понравился, в производстве MySQL нет.

#class PostsController < ApplicationController
...
@posts = Post.all(:order => "RANDOM()")
...
end

#view
<% @posts.each do |post| %>
...
<% end %>

Ответы [ 3 ]

1 голос
/ 21 января 2011

Функция RAND() в MySQL. Используйте его вместо RANDOM().

0 голосов
/ 21 января 2011

Это может быть невозможно в зависимости от масштаба вашей проблемы и размера вашей базы данных.См. Аксиома выбора .;)

0 голосов
/ 21 января 2011

Следующий запрос SQL прекрасно работает на MySQL:

SELECT *
FROM table
ORDER BY rand()
LIMIT 1

Я не уверен, что это эквивалентно рельсам, но вы поняли

Я предполагаю, что эквивалент Rails вышеупомянутого SQL будет:

Post.all(:order => "rand()", :limit => 1)
...