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

  • このエントリーをはてなブックマークに追加
  • Pocket

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

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

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

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

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

ご訪問ありがとうございます。
参考になりましたら『いいね!』もお願いします。

ITの活用情報を毎週お届けする無料メルマガに是非ご登録ください。

閉じる

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

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

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