データベース テーブルからランダムな行を選択することは、さまざまなユースケースにとって価値のある操作です。 SQL にはランダム レコードを直接取得するための組み込み関数がありませんが、いくつかの方法で近似値が得られます。
MySQL、PostgreSQL、Microsoft SQL Server 同様のアプローチを使用します:
<code class="language-sql">SELECT column FROM table ORDER BY RAND() LIMIT 1;</code>
このメソッドは、RAND() 関数を使用して各行にランダムな値を割り当て、それらを並べ替えます。 LIMIT 1 句により、最高ランクの行のみが返されるようになります。
IBM DB2 は、次の手順を含むわずかに異なるアプローチを使用します。
<code class="language-sql">SELECT column, RAND() AS IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;</code>
このメソッドでは、RAND() 関数を使用して各行のランダム インデックス (IDX) を生成し、並べ替えます。 FETCH FIRST 1 ROWS ONLY 句は結果を最初の行に制限し、実質的にランダムな選択を提供します。
Oracle は、少し異なるテクノロジーを使用しています:
<code class="language-sql">SELECT column FROM ( SELECT column FROM table ORDER BY DBMS_RANDOM.VALUE ) WHERE ROWNUM = 1;</code>
ここで、DBMS_RANDOM.VALUE 関数は各行に一意のランダム値を割り当て、ネストされたクエリでの並べ替えに使用されます。 ROWNUM = 1 句は、結果を最高ランクの行に制限し、ランダムに選択されます。
これらのメソッドは、SQL テーブルからランダムな行を取得する効率的な方法を提供し、開発者がランダムなデータ サンプリングを必要とするさまざまな関数やアプリケーションを実装できるようにします。
以上がSQL データベースからランダムな行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。