[解決済み] Rails 3: ランダムレコードの取得
2022-07-03 10:17:13
質問
Rails 2でランダムなレコードを見つける例をいくつか見つけたのですが、好ましい方法は以下のようです。
Thing.find :first, :offset => rand(Thing.count)
初心者なので、Rails 3の新しいfind構文を使ってどのように構築できるのかよくわかりません。
では、ランダムなレコードを見つけるための"Rails 3 Way"は何でしょうか?
どのように解決するのですか?
Thing.first(:order => "RANDOM()") # For MySQL :order => "RAND()", - thanx, @DanSingerman
# Rails 3
Thing.order("RANDOM()").first
または
Thing.first(:offset => rand(Thing.count))
# Rails 3
Thing.offset(rand(Thing.count)).first
実は、Rails 3ではすべての例が動作します。しかし、順序
RANDOM
を使うのは大きなテーブルではかなり遅いですが、よりSQL的な
UPDです。インデックス付きカラム(PostgreSQLの構文)に対して、以下のようなトリックを使うことができます。
select *
from my_table
where id >= trunc(
random() * (select max(id) from my_table) + 1
)
order by id
limit 1;
関連
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] JavaScriptでランダムな文字列/文字を生成する
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] デバイスを使用する現在のユーザーメソッド
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] 未初期化の定数 "コントローラ名"
-
[解決済み] 属性とカラムの違いは何ですか?
-
[解決済み] ActiveRecordのランダムレコード