2011-01-21 2 views
0

Удовлетворение наилучшего способа извлечения случайной записи из базы данных в приложениях Ruby on Rails (2.3.9).Извлечение случайной записи из базы данных

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

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

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

ответ

1

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

0

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

SELECT * 
FROM table 
ORDER BY rand() 
LIMIT 1 

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

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

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

Это не может быть возможным в зависимости от объема вашей проблемы и размера вашего databa как таковые. См. Axiom of Choice. ;)

+0

В этом ответе много неопределенного. –

Смежные вопросы