ホームページ > データベース > mysql チュートリアル > MySQL で重み付けされたランダムな行を選択するには?

MySQL で重み付けされたランダムな行を選択するには?

Barbara Streisand
リリース: 2024-12-05 00:13:15
オリジナル
390 人が閲覧しました

How to Select a Weighted Random Row in MySQL?

MySQL での重み付けされた結果によるランダム選択

この問題には、行が「」に基づいて重み付けされる MySQL テーブルからのランダムなエントリの選択が含まれます。乗数」列。 RAND() を使用する従来のアプローチでは、この重み付けが考慮されていません。

これに対処するために、ユーザーは ORDER BY -LOG(1.0 - RAND()) / Multiplier を使用するアプローチを提案しました。この数式は、ランダム化プロセスを効果的に調整して、重み付けされた行が選択される確率を高くします。

この数式は、各行の「ランダム性」を表す値を計算します。値が低いほど、確率が高いことを示します。この値を「乗数」で割ることにより、より高い乗数を持つ行には事実上、より低い「ランダム性」が与えられ、選択される可能性が高くなります。

この方法の欠点は、無効にすることができないことです。乗数を 0 に設定すると行がゼロで除算されるためです。ただし、この制限は、WHERE Multiplier > を使用して行をフィルタリングすることで克服できます。 0 乗数がゼロのものを除外します。

以上がMySQL で重み付けされたランダムな行を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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