【当ブログではアフィリエイト広告を利用しています】

[MySQL] SQL文でランダム取得する(RAND)

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

PHP等でデータをランダムに表示させたいというケースがしばしばありますが、元データをデータベースから取得している場合では、取得するSQL文を変更してランダムにデータを取得する方がデータを取得後にプログラムで配列を乱数取得して表示させるより安全且つ高速です。

ここでは最近よく使われるMySQLを例にしていますが、PostgreSQLでも互換性のある記述です。

SELECT * FROM table_name ORDER BY RAND() LIMIT 20;

※レコード数が多いテーブルでは「SELECT *」のランダムは非常に遅くなりますので注意してください。(取得するカラムを指定しましょう)

 
ちなみに、元データがデータベースではないような場合は、PHP 配列で shuffle() を利用すれば良いかと思います。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。