ホームページ > データベース > mysql チュートリアル > SQL データベースからランダムな行を効率的に選択するにはどうすればよいですか?

SQL データベースからランダムな行を効率的に選択するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-23 06:27:14
オリジナル
185 人が閲覧しました

How to Efficiently Select a Random Row from an SQL Database?

SQL ランダム行選択: 効率的な手法の探索

データベース テーブルからランダムな行を選択することは、さまざまなユースケースにとって価値のある操作です。 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート